Map : méthode [Symbol.iterator]()
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
map[Symbol.iterator]()
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
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.
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