Set.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 July 2015.

Die [Symbol.iterator]() Methode von Set Instanzen implementiert das iterable Protokoll und ermöglicht es Set Objekten, von den meisten Syntaxen, die Iterables erwarten, konsumiert zu werden, wie zum Beispiel dem Spread-Syntax und for...of Schleifen. Sie gibt ein Set-Iterator-Objekt zurück, das die Werte des Sets in Einfügereihenfolge liefert.

Der Anfangswert dieser Eigenschaft ist das gleiche Funktionsobjekt wie der Anfangswert der Set.prototype.values Eigenschaft.

Probieren Sie es aus

Syntax

js
set[Symbol.iterator]()

Parameter

Keine.

Rückgabewert

Der gleiche Rückgabewert wie Set.prototype.values(): ein neues iterierbares Iterator-Objekt, das die Werte des Sets liefert.

Beispiele

Iteration mit for...of Schleife

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

js
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});

for (const v of mySet) {
  console.log(v);
}

Manuelles Erstellen des Iterators

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

js
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});

const setIter = mySet[Symbol.iterator]();

console.log(setIter.next().value); // "0"
console.log(setIter.next().value); // 1
console.log(setIter.next().value); // {}

Spezifikationen

Specification
ECMAScript Language Specification
# sec-set.prototype-%symbol.iterator%

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch