Die reduce-Methode
Die Methode reduce reduziert ein Array auf
einen einzelnen Wert (reduziert). Beispielsweise
kann mit dieser Methode leicht die Summe der
Array-Elemente gefunden werden (das Array wird also
auf einen einzelnen Wert - die Summe der Elemente - reduziert).
Als ersten Parameter erhält die Methode reduce
eine Funktion, die sequentiell für jedes Element des Arrays ausgeführt wird,
beginnend mit dem ersten.
In diese Funktion können 4 Parameter übergeben werden.
Wenn diese Parameter vorhanden sind (sie sind nicht obligatorisch),
wird automatisch in den ersten das Zwischenergebnis
übergeben, in den zweiten das Element
des Arrays, in den dritten - seine Position im Array (Index),
und in den vierten - das Array selbst.
Das Zwischenergebnis ist eine Variable,
in der sich der Wert ansammelt,
den die Methode reduce zurückgibt, wenn
sie alle Elemente des Arrays durchlaufen hat. Beispielsweise
kann dort sequentiell die Summe der
Array-Elemente gesammelt werden: zuerst das erste
Element, beim nächsten Durchlauf dann
die Summe des ersten und zweiten Elements, beim nächsten
Durchlauf - die Summe des ersten, zweiten und dritten.
Und so weiter, bis das Array zu Ende ist.
Die Funktion, die reduce akzeptiert,
muss den neuen Wert des Zwischenergebnisses zurückgeben.
Als zweiter Parameter der Methode reduce wird
der Anfangswert des Zwischenergebnisses angegeben.
Wenn er nicht angegeben wird, entspricht er dem ersten
Element des Arrays, und die Verarbeitung der Elemente beginnt
beim zweiten Element.
Syntax
array.reduce(function(Zwischenergebnis, Element, Index, Array) {
return neues Zwischenergebnis;
}, Anfangswert);
Beispiel
Lassen Sie uns die Summe der Elemente des Arrays finden:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Ergebnis der Codeausführung:
21
Beispiel
Lassen Sie uns die Summe aller positiven Zahlen des Arrays finden:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(sum, elem) {
if (elem >= 0) {
return sum + elem;
} else {
return sum;
}
}, 0);
console.log(res);
Ergebnis der Codeausführung:
10
Siehe auch
-
die Methode
reduceRight,
die eine ähnliche Operation ausführt -
die Methode
filter,
die das Filtern von Array-Elementen ermöglicht -
die Methoden
mapundforEach,
die es ermöglichen, eine Funktion auf jedes Element eines Arrays anzuwenden -
die Methoden
someundevery,
die eine Überprüfung des Arrays durchführen