A reduce metódus
A reduce metódus egy tömböt egyetlen
értékké redukál („összecsuk”). Például
ezen metódus segítségével könnyen megtalálható
a tömb elemeinek összege (vagyis a tömb
egyetlen értékké, az elemek összegévé redukálódik).
A reduce metódus első paramétereként
kap egy függvényt, amely sorban végrehajtódik
a tömb minden elemén, az elsőtől kezdve.
Ehhez a függvényhez 4 paramétert lehet átadni.
Ha ezek a paraméterek léteznek (nem kötelezőek),
akkor az elsőbe automatikusan a köztes
eredmény kerül, a másodikba a tömb
eleme, a harmadikba - a tömb beli sorszáma (index),
a negyedikbe pedig maga a tömb.
A köztes eredmény egy olyan változó,
amelyben felhalmozódik az az érték,
amit a reduce metódus ad vissza,
amikor végigiterált a tömb összes elemén. Például
ebbe sorban felhalmozható a tömb elemeinek összege:
először betesszük az első elemet,
a ciklus következő futásakor már
az első és a második elem összegét, a következő
futáskor - az első, második és harmadik elemét.
És így tovább, amíg a tömb el nem fogy.
A reduce által fogadott függvénynek
az új köztes eredmény értékét kell visszaadnia.
A reduce metódus második paramétere
a köztes eredmény kezdeti értéke.
Ha nincs megadva, akkor az első
tömb elemével egyenlő, az elemek feldolgozása pedig
a második elemtől kezdődik.
Szintaxis
tömb.reduce(function(köztes eredmény, elem, index, tömb) {
return új köztes eredmény;
}, kezdeti érték);
Példa
Határozzuk meg a tömb elemeinek összegét:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
A kód végrehajtásának eredménye:
21
Példa
Keressük meg az összes pozitív szám összegét a tömbben:
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);
A kód végrehajtásának eredménye:
10