Map : méthode [Symbol.iterator]() - JavaScript | MDN
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
La méthode [Symbol.iterator]() des instances de Map implémente le protocole itérable et permet aux objets Map d'être utilisés par la plupart des syntaxes s'attendant à des itérables, comme la syntaxe de décomposition et les boucles for...of. Elle retourne un objet itérateur de map qui retourne les paires clé-valeur de la map dans l'ordre d'insertion.
La valeur initiale de cette propriété est le même objet fonction que la valeur initiale de la propriété Map.prototype.entries.
Exemple interactif
const map = new Map();
map.set("0", "toto");
map.set(1, "truc");
const iterator = map[Symbol.iterator]();
for (const item of iterator) {
console.log(item);
}
// Sortie attendue : Array ["0", "toto"]
// Sortie attendue : Array [1, "truc"]
Syntaxe
Paramètres
Aucun.
Valeur de retour
La même valeur de retour que Map.prototype.entries() : un nouvel objet itérateur itérable qui retourne les paires clé-valeur de la map.
Exemples
Itérer en utilisant for..of
js
const maMap = new Map();
maMap.set("0", "toto");
maMap.set(1, "truc");
maMap.set({}, "bidule");
for (const entree of maMap) {
console.log(entree);
}
// ["0", "toto"]
// [1, "truc"]
// [{}, "bidule"]
for (const [cle, valeur] of maMap) {
console.log(`${cle}: ${valeur}`);
}
// 0: toto
// 1: truc
// [Object]: bidule
Itérer manuellement avec l'itérateur
Vous pouvez toujours appeler manuellement la méthode next() de l'objet itérateur retourné pour obtenir un contrôle maximal sur le processus d'itération.
js
const maMap = new Map();
maMap.set("0", "toto");
maMap.set(1, "truc");
maMap.set({}, "bidule");
const mapIter = maMap[Symbol.iterator]();
console.log(mapIter.next().value); // ["0", "toto"]
console.log(mapIter.next().value); // [1, "truc"]
console.log(mapIter.next().value); // [Object, "bidule"]
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-map.prototype-%symbol.iterator% |
Compatibilité des navigateurs
Voir aussi
- L'objet
Map - La méthode
Map.prototype.entries() - La méthode
Map.prototype.keys() - La méthode
Map.prototype.values() - La propriété statique
Symbol.iterator - Les protocoles d'itération