Signatur
Beschreibung
Die Methode forEach() führt den bereitgestellten callback einmal für jeden Wert aus, der tatsächlich im Set-Objekt vorhanden ist. 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:
- dem Element-Wert
- dem Element-Schlüssel
- dem durchlaufenen
Set-Objekt
In Set-Objekten gibt es jedoch keine Schlüssel, sodass die ersten beiden Argumente beide Werte sind, die im Set enthalten sind. Dies dient der Konsistenz mit anderen forEach()-Methoden für Map und Array.
Wenn ein thisArg-Parameter an forEach() übergeben wird, wird er beim Aufruf an callback weitergegeben und dort als this-Wert verwendet. Andernfalls wird der Wert undefined als this-Wert übergeben. Der letztlich vom callback beobachtbare this-Wert wird gemäß den üblichen Regeln zur Bestimmung des von einer Funktion gesehenen this ermittelt.
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 vor Beendigung von forEach() hinzugefügt werden, werden besucht.
forEach() führt die callback-Funktion einmal für jedes Element im Set-Objekt aus; es gibt keinen Wert zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $callbackFn Pflicht | Function | — | Eine Funktion, die für jeden Eintrag im Set ausgeführt wird. Die Funktion wird mit den folgenden Argumenten aufgerufen: value (Wert jeder Iteration), key (Schlüssel jeder Iteration; immer identisch mit value) und set (das durchlaufene Set). |
| $thisArg | any | — | Ein Wert, der beim Ausführen von callbackFn als this verwendet wird. |
Rückgabewert
undefined).Beispiele
Inhalt eines Set-Objekts protokollieren
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"