Metodas reduce
Metodas reduce sumažina masyvą iki
vienos reikšmės (redukuoja). Pavyzdžiui,
šiuo metodu galima lengvai rasti masyvo
elementų sumą (t.y. masyvas bus sumažintas
iki vienos reikšmės - elementų sumos).
Pirmuoju parametru metodas reduce gauna
funkciją, kuri nuosekliai vyks
kiekvienam masyvo elementui, pradedant nuo pirmojo.
Į šią funkciją galima perduoti 4 parametrus.
Jei šie parametrai yra (jie nėra privalomi),
tada pirmajame automatiškai bus tarpinis
rezultatas, antrajame - masyvo elementas,
trečiajame - jo numeris masyve (indeksas),
o ketvirtajame - pats masyvas.
Tarpinis rezultatas - tai kintamasis,
kuriame kaupsis ta reikšmė,
kurią grąžins metodas reduce, kai
peržiūrės visus masyvo elementus. Pavyzdžiui,
ten galima nuosekliai kaupti masyvo
elementų sumą: pirmiausia patalpinti pirmąjį
elementą, kitą kartą cikle jau
pirmojo ir antrojo elemento sumą, kitą kartą
- pirmojo, antrojo ir trečiojo sumą.
Ir taip, kol masyvas nesibaigs.
Funkcija, kurią priima reduce,
turi grąžinti naują tarpinio rezultato reikšmę.
Antruoju metodo reduce parametru nurodoma
pradinė tarpinio rezultato reikšmė.
Jei ji nenurodyta, ji bus lygi pirmajam
masyvo elementui, o elementų apdorojimas prasidės
nuo antrojo elemento.
Sintaksė
masyvas.reduce(function(tarpinisRezultatas, elementas, indeksas, masyvas) {
return naujas tarpinis rezultatas;
}, pradinė reikšmė);
Pavyzdys
Raskime masyvo elementų sumą:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Kodo vykdymo rezultatas:
21
Pavyzdys
Raskime visų teigiamų masyvo skaičių sumą:
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);
Kodo vykdymo rezultatas:
10