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 von Set Instanzen implementiert das iterable Protokoll und ermöglicht es Set Objekten, von den meisten Syntaxen konsumiert zu werden, die Iterables erwarten, wie zum Beispiel die Spread-Syntax und for...of Schleifen. Sie gibt ein Set-Iterator-Objekt zurück, das die Werte der Menge in der Einfügereihenfolge liefert.

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

Probieren Sie es aus

const set1 = new Set();

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

const iterator1 = set1[Symbol.iterator]();

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

console.log(iterator1.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 iterierbares Iterator-Objekt, das die Werte der Menge 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 iterierbar, und iterierende Syntaxen wie die for...of Schleife rufen diese Methode automatisch auf, um den Iterator zu erhalten, über den iteriert wird.

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

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

Manuelle Handhabung des Iterators

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

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