Metoda reduce
Metoda reduce "sklapa" niz u
jednu vrednost (redukuje). Na primer,
pomoću ove metode lako se može naći suma
elemenata niza (to jest, niz će se svesti
na jednu vrednost - na sumu elemenata).
Prvi parametar metode reduce je
funkcija, koja će se sekvencijalno izvršiti
za svaki element niza, počevši od prvog.
U ovu funkciju se mogu proslediti 4 parametra.
Ako ovi parametri postoje (nisu obavezni),
onda će u prvi automatski doći međurezultat,
u drugi će doći element
niza, u treći - njegov broj u nizu (indeks),
a u četvrti - sam niz.
Međurezultat - to je promenljiva,
u kojoj će se akumulirati ona vrednost,
koju će metoda reduce vratiti kada
prođe kroz sve elemente niza. Na primer,
u nju se može sekvencijalno akumulirati suma
elemenata niza: prvo staviti prvi
element, pri sledećem prolasku kroz petlju već
sumu prvog elementa i drugog, pri sledećem
prolasku - sumu prvog, drugog i trećeg.
I tako, dok se niz ne završi.
Funkcija, koju prima reduce,
mora vraćati novu vrednost međurezultata.
Drugim parametrom metode reduce se naznačava
početna vrednost međurezultata.
Ako se ne naznači, biće jednaka prvom
elementu niza, a obrada elemenata će početi
od drugog elementa.
Sintaksa
niz.reduce(function(međurezultat, element, indeks, niz) {
return novi međurezultat;
}, početna vrednost);
Primer
Nađimo sumu elemenata niza:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Rezultat izvršavanja koda:
21
Primer
Hajde da nađemo sumu svih pozitivnih brojeva niza:
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 izvršavanja koda:
10