Set.prototype.forEach()
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 forEach()
-Methode von Set
-Instanzen führt eine bereitgestellte Funktion einmal für jeden Wert in diesem Set in der Einfügereihenfolge aus.
Probieren Sie es aus
Syntax
forEach(callbackFn)
forEach(callbackFn, thisArg)
Parameter
Rückgabewert
Keiner (undefined
).
Beschreibung
Die forEach()
-Methode führt die bereitgestellte callback
-Funktion einmal für jeden tatsächlich im Set
-Objekt vorhandenen Wert aus. Sie wird nicht für Werte aufgerufen, die gelöscht wurden. Sie wird jedoch für Werte ausgeführt, die vorhanden sind, aber den Wert undefined
haben.
callback
wird mit drei Argumenten aufgerufen:
- der Elementwert
- der Elementschlüssel
- das durchlaufene
Set
-Objekt
Es gibt keine Schlüssel in Set
-Objekten, daher sind die ersten beiden Argumente beide Werte, die im Set
enthalten sind. Dies soll es konsistent mit anderen forEach()
-Methoden für Map
und Array
machen.
Wenn ein thisArg
-Parameter an forEach()
übergeben wird, wird er beim Aufruf an callback
weitergegeben, um ihn als this
-Wert zu verwenden. Andernfalls wird der Wert undefined
für die Verwendung als this
-Wert übergeben. Der letztendlich von callback
beobachtbare this
-Wert wird gemäß den üblichen Regeln zur Bestimmung des von einer Funktion gesehenen this
bestimmt.
Jeder Wert wird einmal besucht, außer im Fall, dass er gelöscht und wieder hinzugefügt wurde, bevor forEach()
abgeschlossen ist. callback
wird nicht für Werte aufgerufen, die vor dem Besuch gelöscht wurden. Neue Werte, die hinzugefügt wurden, bevor forEach()
abgeschlossen ist, werden besucht.
forEach()
führt die callback
-Funktion einmal für jedes Element im Set
-Objekt aus; es gibt keinen Wert zurück.
Beispiele
Protokollieren der Inhalte eines Set-Objekts
Der folgende Code protokolliert eine Zeile für jedes Element in einem Set
-Objekt:
function logSetElements(value1, value2, set) {
console.log(`s[${value1}] = ${value2}`);
}
new Set(["foo", "bar", undefined]).forEach(logSetElements);
// Logs:
// "s[foo] = foo"
// "s[bar] = bar"
// "s[undefined] = undefined"
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-set.prototype.foreach |
Browser-Kompatibilität
BCD tables only load in the browser