Metoden reduce
Metoden reduce reduserer en array til
én verdi (reduserer). For eksempel,
med denne metoden kan man enkelt finne summen
av elementene i arrayen (det vil si at arrayen reduseres
til én verdi - summen av elementene).
Som første parameter tar metoden reduce
en funksjon som sekvensielt vil kjøres
for hvert element i arrayen, starter med det første.
I denne funksjonen kan man sende 4 parametere.
Hvis disse parameterne er tilstede (de er ikke obligatoriske),
vil den første automatisk få mellomresultatet,
den andre vil få array-elementet,
den tredje - dets nummer i arrayen (indeks),
og den fjerde - selve arrayen.
Mellomresultatet er en variabel
der verdien som metoden reduce vil returnere,
når den har iterert gjennom alle elementene i arrayen, vil accumuleres. For eksempel,
man kan sekvensielt accumulere summen
av array-elementer der: først legge inn det første
elementet, ved neste gjennomgang av løkken
summen av det første elementet og det andre,
ved neste gjennomgang - summen av det første, andre og tredje.
Og slik fortsetter det til arrayen er tom.
Funksjonen som reduce tar imot,
må returnere den nye verdien for mellomresultatet.
Som andre parameter for metoden reduce angis
startverdien for mellomresultatet.
Hvis den ikke er angitt, vil den være lik det første
elementet i arrayen, og behandlingen av elementene vil starte
med det andre elementet.
Syntaks
array.reduce(function(mellomresultat, element, indeks, array) {
return nytt mellomresultat;
}, startverdi);
Eksempel
La oss finne summen av elementene i arrayen:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Resultatet av kjøring av koden:
21
Eksempel
La oss finne summen av alle positive tall 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);
Resultatet av kjøring av koden:
10