Il modo più semplice e meno performante per farlo è:
Array.from(m).map(([key,value]) => )
Meglio ancora
Array.from(m, ([key, value]) => ))
Array.from
prende qualsiasi cosa iterabile o simile ad un array e lo converte in un array! Come sottolinea Daniel nei commenti, possiamo aggiungere una funzione di mappatura alla conversione per rimuovere un'iterazione e successivamente un array intermedio.
L'uso Array.from
sposterà la tua performance da O(1)
a O(n)
come indica @hraban nei commenti. Poiché m
è a Map
, e non possono essere infiniti, non dobbiamo preoccuparci di una sequenza infinita. Per la maggior parte dei casi, questo sarà sufficiente.
Ci sono un paio di altri modi per scorrere una mappa.
Utilizzando forEach
m.forEach((value,key) => )
Utilizzando 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
funzione che supporta anche la mappa.