Metoden reduce
Metoden reduce reducerar en array till
ett enda värde. Till exempel,
med denna metod kan man enkelt hitta summan
av arrayelement (det vill säga arrayen reduceras
till ett enda värde - summan av elementen).
Som första parameter tar metoden reduce
en funktion som sekventiellt kommer att exekveras
för varje element i arrayen, med början från det första.
Till denna funktion kan man skicka 4 parametrar.
Om dessa parametrar finns (de är inte obligatoriska),
så kommer den första automatiskt att få det mellanliggande
resultatet, den andra kommer att få elementet
i arrayen, den tredje - dess nummer i arrayen (index),
och den fjärde - själva arrayen.
Mellanliggande resultat är en variabel
där det värde som metoden reduce kommer att returnera
kommer ackumuleras, när
den har itererat genom alla element i arrayen. Till exempel,
där kan man sekventiellt ackumulera summan
av arrayelement: först lägga till det första
elementet, vid nästa genomgång av loopen
redan summan av det första elementet och det andra,
vid nästa genomgång - summan av det första, andra och tredje.
Och så vidare, tills arrayen tar slut.
Funktionen som reduce tar
måste returnera det nya värdet för det mellanliggande
resultatet.
Som andra parameter för metoden reduce anges
startvärdet för det mellanliggande resultatet.
Om det inte anges, kommer det att vara lika med det första
elementet i arrayen, och bearbetningen av element börjar
från det andra elementet.
Syntax
array.reduce(function(mellanliggandeResultat, element, index, array) {
return nyttMellanliggandeResultat;
}, startvärde);
Exempel
Låt oss hitta summan av arrayelement:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Resultat av kodkörning:
21
Exempel
Låt oss hitta summan av alla positiva tal i arrayen:
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);
Resultat av kodkörning:
10