Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Set.prototype.forEach()

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die forEach()-Methode von Set-Instanzen führt eine bereitgestellte Funktion einmal pro Wert in diesem Set in der Einfügereihenfolge aus.

Probieren Sie es aus

function logSetElements(value1, value2, set) {
  console.log(`s[${value1}] = ${value2}`);
}

new Set(["foo", "bar", undefined]).forEach(logSetElements);

// Expected output: "s[foo] = foo"
// Expected output: "s[bar] = bar"
// Expected output: "s[undefined] = undefined"

Syntax

js
forEach(callbackFn)
forEach(callbackFn, thisArg)

Parameter

callback

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. Dieser ist immer gleich dem value.

set

Das Set, das durchlaufen wird.

thisArg Optional

Ein Wert, der als this beim Ausführen von callbackFn verwendet wird.

Rückgabewert

Keiner (undefined).

Beschreibung

Die forEach()-Methode führt die bereitgestellte callback-Funktion einmal für jeden Wert aus, der tatsächlich im Set-Objekt existiert. Sie wird nicht für Werte aufgerufen, die gelöscht wurden. Sie wird jedoch für Werte, die vorhanden sind, aber den Wert undefined haben, ausgeführt.

callback wird mit drei Argumenten aufgerufen:

  • dem Elementwert
  • dem Elementschlüssel
  • dem durchlaufenen Set-Objekt

Es gibt keine Schlüssel in Set-Objekten, daher sind die ersten beiden Argumente beide Werte, 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 an callback weitergegeben, wenn es aufgerufen wird, zur Verwendung als dessen this-Wert. Andernfalls wird der Wert undefined zur Verwendung als dessen this-Wert weitergegeben. Der letztlich 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 vor Beendigung von forEach() erneut hinzugefügt wurde. 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.

Beispiele

Das Protokollieren des Inhalts eines Set-Objekts

Der folgende Code protokolliert eine Zeile für jedes Element in einem Set-Objekt:

js
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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-set.prototype.foreach

Browser-Kompatibilität

Siehe auch