A maneira mais simples e de menor desempenho de fazer isso é:
Array.from(m).map(([key,value]) => )
Melhor ainda
Array.from(m, ([key, value]) => ))
Array.from
pega qualquer coisa iterável ou semelhante a um array e o converte em um array! Como Daniel aponta nos comentários, podemos adicionar uma função de mapeamento à conversão para remover uma iteração e, subsequentemente, um array intermediário.
Usar Array.from
irá mover seu desempenho de O(1)
para O(n)
como @hraban aponta nos comentários. Como m
é um Map
e eles não podem ser infinitos, não precisamos nos preocupar com uma sequência infinita. Na maioria dos casos, isso será suficiente.
Existem algumas outras maneiras de percorrer um mapa.
Usando forEach
m.forEach((value,key) => )
Usando 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
funções que também oferecem suporte ao mapa.