Metoda reduce
Metoda reduce zloži polje v
eno vrednost (reducira). Na primer,
s to metodo lahko zlahka najdemo vsoto
elementov polja (to pomeni, da bo polje zmanjšano
na eno samo vrednost - na vsoto elementov).
Kot prvi parameter metoda reduce prejme
funkcijo, ki se bo zaporedno izvajala
za vsak element polja, začenši s prvim.
V to funkcijo lahko podamo 4 parametre.
Če ti parametri obstajajo (niso obvezni),
potem bo prvi samodejno prejel vmesni
rezultat, drugi bo prejel element
polja, tretji - njegovo številko v polju (indeks),
četrti pa - samo polje.
Vmesni rezultat je spremenljivka,
v kateri se bo kopičila vrednost,
ki jo bo vrnila metoda reduce, ko
bo pregledala vse elemente polja. Na primer,
tja lahko zaporedno kopičimo vsoto
elementov polja: najprej damo prvi
element, ob naslednjem prehodu zanke
že vsoto prvega elementa in drugega, ob naslednjem
prehodu - vsoto prvega, drugega in tretjega.
In tako naprej, dokler se polje ne konča.
Funkcija, ki jo sprejme reduce,
mora vrniti novo vrednost vmesnega
rezultata.
Kot drugi parameter metode reduce se navede
začetna vrednost vmesnega rezultata.
Če je ne navedemo, bo enaka prvemu
elementu polja, obdelava elementov pa se bo začela
z drugim elementom.
Sintaksa
polje.reduce(function(vmesniRezultat, element, indeks, polje) {
return novVmesniRezultat;
}, zacetnaVrednost);
Primer
Poiščimo vsoto elementov polja:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Rezultat izvajanja kode:
21
Primer
Poiščimo vsoto vseh pozitivnih števil v polju:
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);
Rezultat izvajanja kode:
10