Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

js
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

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