Metóda reduce
Metóda reduce redukuje pole na
jednu hodnotu (redukuje). Napríklad,
pomocou tejto metódy možno ľahko nájsť súčet
prvkov poľa (t.j. pole sa zredukuje
na jednu hodnotu - na súčet prvkov).
Prvým parametrom metóda reduce prijíma
funkciu, ktorá sa postupne vykoná
pre každý prvok poľa, počnúc prvým.
Do tejto funkcie je možné odovzdať 4 parametre.
Ak tieto parametre existujú (nie sú povinné),
tak do prvého sa automaticky dostane priebežný
výsledok, do druhého sa dostane prvok
poľa, do tretieho - jeho číslo v poli (index),
a do štvrtého - samotné pole.
Priebežný výsledok - je premenná,
v ktorej sa bude hromadiť tá hodnota,
ktorú vráti metóda reduce, keď
prejde všetky prvky poľa. Napríklad,
tam možno postupne hromadiť súčet
prvkov poľa: najprv vložiť prvý
prvok, pri ďalšom prechode cyklu už
súčet prvého prvku a druhého, pri ďalšom
prechode - súčet prvého, druhého a tretieho.
A tak ďalej, kým pole neskončí.
Funkcia, ktorú prijíma reduce,
musí vrátiť novú hodnotu priebežného
výsledku.
Druhým parametrom metódy reduce sa uvádza
počiatočná hodnota priebežného výsledku.
Ak nie je uvedená, bude sa rovnať prvému
prvku poľa a spracovanie prvkov začne
od druhého prvku.
Syntax
pole.reduce(function(priebežný výsledok, prvok, index, pole) {
return nový priebežný výsledok;
}, počiatočná hodnota);
Príklad
Nájdime súčet prvkov poľa:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Výsledok vykonania kódu:
21
Príklad
Nájdime súčet všetkých kladných čísel v poli:
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);
Výsledok vykonania kódu:
10