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 September 2015.

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

Der anfängliche Wert dieser Eigenschaft ist dasselbe Funktionsobjekt wie der anfängliche Wert der Set.prototype.values Eigenschaft.

Probieren Sie es aus

const set = new Set();

set.add(42);
set.add("forty two");

const iterator = set[Symbol.iterator]();

console.log(iterator.next().value);
// Expected output: 42

console.log(iterator.next().value);
// Expected output: "forty two"

Syntax

js
set[Symbol.iterator]()

Parameter

Keine.

Rückgabewert

Der gleiche Rückgabewert wie Set.prototype.values(): ein neues iterables Iterator-Objekt, das die Werte des Sets 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 Set Objekte iterable, und iterierende Syntaxen wie die for...of Schleife rufen diese Methode automatisch auf, um den Iterator zum Durchlaufen zu erhalten.

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® 2026 Language Specification
# sec-set.prototype-%symbol.iterator%

Browser-Kompatibilität

Siehe auch