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
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.
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.
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
BCD tables only load in the browser