Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Experiment: Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.

Array.prototype[Symbol.iterator]()

BaselineWidely available

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

Der Anfangswert dieser Eigenschaft ist dasselbe Funktionsobjekt wie der Anfangswert der EigenschaftArray.prototype.values.

Probieren Sie es aus

const array1 = ["a", "b", "c"];const iterator1 = array1[Symbol.iterator]();for (const value of iterator1) {  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 neuesiterierbares 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 Arraysiterierbar, und iterierende Syntaxen wie diefor...of-Schleife rufen diese Methode automatisch auf, um den Iterator zum Durchlaufen zu erhalten.

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

Manueller Aufbau des Iterators

Sie können dennoch dienext()-Methode des zurückgegebenen Iterator-Objekts manuell aufrufen, um 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

Umgang mit Strings und String-Arrays mit derselben Funktion

Da sowohlStrings als auch Arrays das iterable Protokoll implementieren, kann eine generische Funktion gestaltet 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 ist oder zumindest ein Objekt mit einer solchen Methode.

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

MDN-Feedback-Box

Diese Seite wurde automatisch aus dem Englischen übersetzt.


[8]ページ先頭

©2009-2025 Movatter.jp