Le moyen le plus simple et le moins performant de le faire est:
Array.from(m).map(([key,value]) => )
Mieux encore
Array.from(m, ([key, value]) => ))
Array.from
prend n'importe quel élément itérable ou semblable à un tableau et le convertit en un tableau! Comme Daniel le souligne dans les commentaires, nous pouvons ajouter une fonction de mappage à la conversion pour supprimer une itération et par la suite un tableau intermédiaire.
L'utilisation Array.from
déplacera votre performance de O(1)
à O(n)
comme @hraban le souligne dans les commentaires. Puisque m
c'est a Map
, et qu'ils ne peuvent pas être infinis, nous n'avons pas à nous soucier d'une séquence infinie. Dans la plupart des cas, cela suffira.
Il existe plusieurs autres façons de parcourir une carte.
En utilisant forEach
m.forEach((value,key) => )
En utilisant 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
fonction qui prend également en charge Map.