A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.iterator below:

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

Array.prototype[Symbol.iterator]()

Baseline Widely available

Die Methode [Symbol.iterator]() von Array Instanzen implementiert das iterable Protocol und ermöglicht es Arrays, von den meisten Syntaxen konsumiert zu werden, die Iterables erwarten, wie zum Beispiel dem Spread-Syntax und for...of Schleifen. Sie gibt ein Array-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 Eigenschaft Array.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 Parameter

Keine.

Rückgabewert

Der gleiche Rückgabewert wie Array.prototype.values(): ein neues iterables 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 Arrays iterable, und Iterations-Syntaxen wie die for...of Schleife rufen diese Methode automatisch auf, um den Iterator zu erhalten, über den iteriert werden soll.

HTML
<ul id="letterResult"></ul>
JavaScript
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 die next() Methode des zurückgegebenen Iterator-Objekts dennoch manuell aufrufen, um die maximale Kontrolle über den Iterationsprozess zu erhalten.

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
Handhabung von Zeichenfolgen und Zeichenfolgen-Arrays mit derselben Funktion

Da sowohl Zeichenfolgen 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, als Array.prototype.values() direkt aufzurufen, was erfordert, dass die Eingabe ein Array oder zumindest ein Objekt mit einer solchen Methode ist.

function logIterable(it) {
  if (typeof it[Symbol.iterator] !== "function") {
    console.log(it, "is not iterable.");
    return;
  }
  for (const letter of it) {
    console.log(letter);
  }
}

// Array
logIterable(["a", "b", "c"]);
// a
// b
// c

// String
logIterable("abc");
// a
// b
// c

// Number
logIterable(123);
// 123 is not iterable.
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4