Baseline 2025
Newly available
Die reduce()
-Methode von Iterator
-Instanzen ähnelt Array.prototype.reduce
: Sie führt eine benutzerdefinierte "Reducer"-Callback-Funktion für jedes vom Iterator erzeugte Element aus und übergibt dabei den Rückgabewert der Berechnung des vorhergehenden Elements. Das Endergebnis des Reducers über alle Elemente ist ein Einzelwert.
reduce(callbackFn)
reduce(callbackFn, initialValue)
Parameter
callbackFn
Eine Funktion, die für jedes vom Iterator erzeugte Element ausgeführt wird. Ihr Rückgabewert wird zum Wert des accumulator
-Parameters beim nächsten Aufruf von callbackFn
. Beim letzten Aufruf wird der Rückgabewert der 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 entspricht sein Wert initialValue
, falls letzterer angegeben ist; andernfalls entspricht sein Wert dem ersten Element des Iterators.
currentValue
Der Wert des aktuellen Elements. Beim ersten Aufruf entspricht sein Wert dem ersten Element des Iterators, falls initialValue
angegeben ist; andernfalls entspricht sein Wert dem zweiten Element.
currentIndex
Die Indexposition von currentValue
. Beim ersten Aufruf entspricht sein Wert 0
, wenn initialValue
angegeben ist, andernfalls 1
.
initialValue
Optional
Ein Wert, auf den accumulator
beim ersten Aufruf des Callbacks initialisiert wird. Wenn initialValue
angegeben wird, beginnt callbackFn
mit dem ersten Element als currentValue
auszuführen. Ist initialValue
nicht angegeben, wird accumulator
auf das erste Element initialisiert, und callbackFn
beginnt mit dem zweiten Element als currentValue
zu arbeiten. In diesem Fall wird ein Fehler ausgelöst, wenn der Iterator leer ist (sodass kein erster Wert als accumulator
zurückgegeben werden kann).
Der Wert, der sich ergibt, nachdem die "Reducer"-Callback-Funktion über den gesamten Iterator vollständig ausgeführt wurde.
AusnahmenTypeError
Wird ausgelöst, wenn der Iterator keine Elemente enthält und initialValue
nicht angegeben ist.
Siehe Array.prototype.reduce()
für Details, wie reduce()
arbeitet. Im Gegensatz zu den meisten anderen Hilfsmethoden für Iteratoren funktioniert es nicht gut mit unendlichen Iteratoren, da es nicht lazy ist.
Im folgenden Beispiel wird ein Iterator erstellt, der Begriffe der Fibonacci-Folge erzeugt und dann die ersten zehn Begriffe summiert:
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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4