| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.iterator | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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 mthode [Symbol.iterator]() des instances de Array implmente le protocole itrable et permet aux tableaux d'tre parcourus par la plupart des syntaxes qui attendent un itrable, comme la syntaxe de l'oprateur de propagation et les boucles for...of. Elle retourne un objet itrateur de tableau qui fournit la valeur de chaque indice du tableau.
La valeur initiale de cette proprit est la mme fonction que la valeur initiale de la proprit Array.prototype.values.
const array = ["a", "b", "c"];
const iterator = array[Symbol.iterator]();
for (const value of iterator) {
console.log(value);
}
// Rsultat attendu : "a"
// Rsultat attendu : "b"
// Rsultat attendu : "c"
array[Symbol.iterator]()
Aucun.
La mme valeur de retour que Array.prototype.values() : un nouvel objet d'itrateur itrable qui fournit la valeur de chaque indice du tableau.
for...ofNotez qu'il est rare d'avoir appeler cette mthode directement. La prsence de la mthode [Symbol.iterator]() rend les tableaux itrables, et les syntaxes d'itration comme la boucle for...of appellent automatiquement cette mthode pour obtenir l'itrateur parcourir.
<ul id="letterResult"></ul>
const arr = ["a", "b", "c"];
const letterResult = document.getElementById("letterResult");
for (const letter of arr) {
const li = document.createElement("li");
li.textContent = letter;
letterResult.appendChild(li);
}
Vous pouvez toujours appeler manuellement la mthode next() de l'objet itrateur retourn pour avoir un contrle maximal sur le processus d'itration.
const arr = ["a", "b", "c", "d", "e"];
const arrIter = arr[Symbol.iterator]();
console.log(arrIter.next().value); // a
console.log(arrIter.next().value); // b
console.log(arrIter.next().value); // c
console.log(arrIter.next().value); // d
console.log(arrIter.next().value); // e
Puisque les chanes de caractres et les tableaux implmentent le protocole itrable, il est possible de concevoir une fonction gnrique pour traiter les deux types d'entre de la mme manire. Cela est prfrable l'appel direct de Array.prototype.values(), qui ncessite que l'entre soit un tableau ou au moins un objet possdant cette mthode.
function logIterable(it) {
if (typeof it[Symbol.iterator] !== "function") {
console.log(it, "n'est pas itrable.");
return;
}
for (const letter of it) {
console.log(letter);
}
}
// Tableau
logIterable(["a", "b", "c"]);
// a
// b
// c
// Chane de caractres
logIterable("abc");
// a
// b
// c
// Nombre
logIterable(123);
// 123 n'est pas itrable.
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype-%symbol.iterator% |
ArrayArray.prototype.keys()Array.prototype.entries()Array.prototype.values()TypedArray.prototype[Symbol.iterator]()String.prototype[Symbol.iterator]()Symbol.iteratorArray.prototype[Symbol.iterator] dans core-js (angl.)Cette page a t modifie le 5 nov. 2025 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |