Есть экземпляр Map, например
let rec = new Map([
["1", Buffer.from('a', 'hex')],
["2", Buffer.from('b', 'hex')],
]);
Можно ли его перебрать с помощью forEach
так же, как с обычным одномерным массивом? Т.е., мне нужно в одном участке кода использовать "1", а в другом Buffer.from('b', 'hex')
Это возможно?
Это можно сделать так:
let rec = new Map([
["1", Buffer.from('a', 'hex')],
["2", Buffer.from('b', 'hex')],
]), index = 1;
Первый способ:
rec.forEach((key, value) => {
console.log(index + ' - ' + key + ' = ' + value);
++index;
});
Второй способ:
for (var [key, value] of rec.entries()) {
console.log(index + ' - ' + key + ' = ' + value);
++index;
}
Работать будет и без .entries()
тоже.
Можно с помощью IIFE (счетчик в аргументе, и его инкремент "вручную"):
let rec = new Map([
['1', 'First value'],
['2', 'Second value'],
]);
(idx => rec.forEach((val, key) => { // idx - счетчик
console.log(idx++, ':', val); // постинкремент на каждой итерации
}))(0); // 0 - начальное значение счетчика
Или через временный массив:
[...rec.entries()].forEach(([val, key], idx) => /*...*/);
Оба этих способа характерны тем что не требуют объявления внешней переменной для значения счетчика.
Второй способ кушает память - его желательно использовать только с небольшими словарями.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я часто видел, что при попытке навести на крестик, сайт что-то предлагаетКак это реализовано?
Как в "Accept-Language" установить язык через jquery? Я определяю язык через "Accept-Language"Пытаюсь, чтобы все запросы шли с запросом другого языка, но headers...
У меня есть приложение - читалка, которое выводит на экран (отдельная активность) информацию из текстовых файлов, подтягивая его из rawВсе эти...