Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Array
  6. [Symbol.iterator]()

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 EnglishAlways switch to English

Array : 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 deArray implémente leprotocole itérable et permet aux tableaux d'être parcourus par la plupart des syntaxes qui attendent un itérable, comme lasyntaxe de l'opérateur de propagation et les bouclesfor...of. Elle retourne unobjet itérateur de tableau qui fournit la valeur de chaque indice du tableau.

La valeur initiale de cette propriété est la même fonction que la valeur initiale de la propriétéArray.prototype.values.

Exemple interactif

const array = ["a", "b", "c"];const iterator = array[Symbol.iterator]();for (const value of iterator) {  console.log(value);}// Résultat attendu : "a"// Résultat attendu : "b"// Résultat attendu : "c"

Syntaxe

js
array[Symbol.iterator]()

Paramètres

Aucun.

Valeur de retour

La même valeur de retour queArray.prototype.values() : un nouvelobjet d'itérateur itérable qui fournit la valeur de chaque indice du tableau.

Exemples

Itération avec une bouclefor...of

Notez qu'il est rare d'avoir à appeler cette méthode directement. La présence de la méthode[Symbol.iterator]() rend les tableauxitérables, et les syntaxes d'itération comme la bouclefor...of appellent automatiquement cette méthode pour obtenir l'itérateur à parcourir.

HTML

html
<ul></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);}

Résultat

Utiliser manuellement l'itérateur

Vous pouvez toujours appeler manuellement la méthodenext() de l'objet itérateur retourné pour avoir un contrôle maximal sur le processus d'itération.

js
const arr = ["a", "b", "c", "d", "e"];const arrIter = arr[Symbol.iterator]();console.log(arrIter.next().value); // aconsole.log(arrIter.next().value); // bconsole.log(arrIter.next().value); // cconsole.log(arrIter.next().value); // dconsole.log(arrIter.next().value); // e

Gérer les chaînes de caractères et les tableaux de chaînes avec la même fonction

Puisque leschaînes de caractères et les tableaux implémentent le protocole itérable, il est possible de concevoir une fonction générique pour traiter les deux types d'entrée de la même manière. Cela est préférable à l'appel direct deArray.prototype.values(), qui nécessite que l'entrée soit un tableau ou au moins un objet possédant cette méthode.

js
function logIterable(it) {  if (typeof it[Symbol.iterator] !== "function") {    console.log(it, "n'est pas itérable.");    return;  }  for (const letter of it) {    console.log(letter);  }}// TableaulogIterable(["a", "b", "c"]);// a// b// c// Chaîne de caractèreslogIterable("abc");// a// b// c// NombrelogIterable(123);// 123 n'est pas itérable.

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype-%symbol.iterator%

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp