Самый простой и наименее эффективный способ сделать это:
Array.from(m).map(([key,value]) => )
Еще лучше
Array.from(m, ([key, value]) => ))
Array.from
берет любую итеративную или похожую на массив вещь и преобразует ее в массив! Как указывает Даниэль в комментариях, мы можем добавить функцию сопоставления к преобразованию, чтобы удалить итерацию, а затем и промежуточный массив.
Использование Array.from
переместит вашу производительность с O(1)
на, O(n)
как отмечает @hraban в комментариях. Поскольку m
это a Map
, и они не могут быть бесконечными, нам не нужно беспокоиться о бесконечной последовательности. В большинстве случаев этого будет достаточно.
Есть еще пара способов пролистать карту.
С помощью forEach
m.forEach((value,key) => )
С помощью for..of
var myMap = new Map();
myMap.set(0, 'zero');
myMap.set(1, 'one');
for (var [key, value] of myMap) {
console.log(key + ' = ' + value);
}
lodash
map
функция, которая также поддерживает карту.