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
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.
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.
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% |