[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.iterator [Back]  [Original]

Array : mthode [Symbol.iterator]() - JavaScript | MDN

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

Array : mthode [Symbol.iterator]()

Baseline Large disponibilit

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.

Dans cet article

Exemple interactif

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"

Syntaxe

js
array[Symbol.iterator]()

Paramtres

Aucun.

Valeur de retour

La mme valeur de retour que Array.prototype.values() : un nouvel objet d'itrateur itrable qui fournit la valeur de chaque indice du tableau.

Exemples

Itration avec une boucle for...of

Notez 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.

HTML

html
<ul id="letterResult"></ul>

JavaScript

js
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);
}

Rsultat

Utiliser manuellement l'itrateur

Vous pouvez toujours appeler manuellement la mthode next() de l'objet itrateur retourn pour avoir un contrle maximal sur le processus d'itration.

js
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

Grer les chanes de caractres et les tableaux de chanes avec la mme fonction

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.

js
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.

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype-%symbol.iterator%

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page