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 Methode [Symbol.iterator]() von Set-Instanzen implementiert das iterable Protokoll und ermöglicht, dass Set-Objekte mit den meisten Syntaxen, die Iterables erwarten, wie dem Spread-Syntax und for...of-Schleifen, verwendet werden können. Sie gibt ein Set-Iterator-Objekt zurück, das die Werte des Sets in Einfügereihenfolge liefert.

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

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 iterables Iterator-Objekt, das die Werte des Sets liefert.

Beispiele

Iteration mit der for...of-Schleife

Beachten Sie, dass es selten notwendig ist, diese Methode direkt aufzurufen. Das Vorhandensein der [Symbol.iterator]()-Methode macht Set-Objekte iterabel, und Iterations-Syntaxen wie die for...of-Schleife rufen diese Methode automatisch auf, um den Iterator zur Iteration 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

Es ist dennoch möglich, die next()-Methode des zurückgegebenen Iterator-Objekts manuell aufzurufen, um maximale Kontrolle über den Iterationsprozess zu erhalten.

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
[Symbol.iterator]

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Uses a non-standard name.
Has more compatibility info.

Siehe auch