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

View in English Always switch to English

Iterator.prototype.reduce()

Baseline 2025
Neu verfügbar

Seit März 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Die Methode reduce() von Iterator-Instanzen funktioniert ähnlich wie Array.prototype.reduce: Sie führt für jedes vom Iterator erzeugte Element eine bereitgestellte „Reducer“-Callback-Funktion aus und übergibt ihr den Rückgabewert der Berechnung für das vorherige Element. Das Ergebnis nach der Verarbeitung aller Elemente ist ein einzelner Wert.

Syntax

js
reduce(callbackFn)
reduce(callbackFn, initialValue)

Parameter

callbackFn

Eine Funktion, die für jedes vom Iterator erzeugte Element ausgeführt wird. Ihr Rückgabewert wird beim nächsten Aufruf von callbackFn zum Wert des Parameters accumulator. Beim letzten Aufruf wird der Rückgabewert zum Rückgabewert von reduce(). Die Funktion wird mit den folgenden Argumenten aufgerufen:

accumulator

Der Wert, der sich aus dem vorherigen Aufruf von callbackFn ergibt. Beim ersten Aufruf ist sein Wert initialValue, falls dieser angegeben wurde; andernfalls ist es das erste Element des Iterators.

currentValue

Der Wert des aktuellen Elements. Beim ersten Aufruf ist dies das erste Element des Iterators, wenn initialValue angegeben wurde; andernfalls ist es das zweite Element.

currentIndex

Die Indexposition von currentValue. Beim ersten Aufruf ist der Wert 0, wenn initialValue angegeben wurde, andernfalls 1.

initialValue Optional

Ein Wert, mit dem accumulator beim ersten Aufruf des Callbacks initialisiert wird. Wenn initialValue angegeben wurde, beginnt die Ausführung von callbackFn mit dem ersten Element als currentValue. Wenn initialValue nicht angegeben wurde, wird accumulator mit dem ersten Element initialisiert, und die Ausführung von callbackFn beginnt mit dem zweiten Element als currentValue. Ist der Iterator in diesem Fall leer, wird ein Fehler ausgelöst, da kein erstes Element als accumulator zur Verfügung steht.

Rückgabewert

Der Wert, der sich ergibt, nachdem die „Reducer“-Callback-Funktion über den gesamten Iterator ausgeführt wurde.

Ausnahmen

TypeError

Wird ausgelöst, wenn der Iterator keine Elemente enthält und initialValue nicht angegeben wurde.

Beschreibung

Einzelheiten zur Funktionsweise von reduce() finden Sie unter Array.prototype.reduce(). Anders als die meisten anderen Iterator-Hilfsmethoden eignet sich reduce() nicht für unendliche Iteratoren, da die Methode nicht lazy ist.

Beispiele

reduce() verwenden

Das folgende Beispiel erstellt einen Iterator, der Glieder der Fibonacci-Folge liefert, und summiert anschließend die ersten zehn Glieder:

js
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

console.log(
  fibonacci()
    .take(10)
    .reduce((a, b) => a + b),
); // 143

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-iterator.prototype.reduce

Browser-Kompatibilität

Siehe auch