Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. [Symbol.iterator]()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Array.prototype[Symbol.iterator]()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2016⁩.

Die Methode[Symbol.iterator]() vonArray Instanzen implementiert dasiterable Protocol und ermöglicht es Arrays, von den meisten Syntaxen konsumiert zu werden, die Iterables erwarten, wie zum Beispiel demSpread-Syntax undfor...of Schleifen. Sie gibt einArray-Iterator-Objekt zurück, das den Wert jedes Indexes im Array liefert.

Der anfängliche Wert dieser Eigenschaft ist das gleiche Funktionsobjekt wie der anfängliche Wert der EigenschaftArray.prototype.values.

Probieren Sie es aus

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

Syntax

js
array[Symbol.iterator]()

Parameter

Keine.

Rückgabewert

Der gleiche Rückgabewert wieArray.prototype.values(): ein neuesiterables Iterator-Objekt, das den Wert jedes Indexes im Array liefert.

Beispiele

Iteration mit der for...of Schleife

Beachten Sie, dass Sie diese Methode selten direkt aufrufen müssen. Die Existenz der[Symbol.iterator]() Methode macht Arraysiterable, und Iterations-Syntaxen wie diefor...of Schleife rufen diese Methode automatisch auf, um den Iterator zu erhalten, über den iteriert werden soll.

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

Ergebnis

Manuelles Erstellen des Iterators

Sie können dienext() Methode des zurückgegebenen Iterator-Objekts dennoch manuell aufrufen, um die maximale Kontrolle über den Iterationsprozess zu erhalten.

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

Handhabung von Zeichenfolgen und Zeichenfolgen-Arrays mit derselben Funktion

Da sowohlZeichenfolgen als auch Arrays das iterable Protocol implementieren, kann eine generische Funktion entworfen werden, um beide Eingaben auf die gleiche Weise zu behandeln. Dies ist besser, alsArray.prototype.values() direkt aufzurufen, was erfordert, dass die Eingabe ein Array oder zumindest ein Objekt mit einer solchen Methode ist.

js
function logIterable(it) {  if (typeof it[Symbol.iterator] !== "function") {    console.log(it, "is not iterable.");    return;  }  for (const letter of it) {    console.log(letter);  }}// ArraylogIterable(["a", "b", "c"]);// a// b// c// StringlogIterable("abc");// a// b// c// NumberlogIterable(123);// 123 is not iterable.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp