Meetod reduce
Meetod reduce taandab massiivi
üheks väärtuseks (reduktseerib). Näiteks
selle meetodi abil on lihtne leida massiivi
elementide summat (see tähendab, et massiiv taandatakse
üheks väärtuseks - elementide summaks).
Esimese parameetrina saab meetod reduce
funktsiooni, mis käivitub järjestikku
iga massiivi elemendi jaoks, alates esimesest.
Sellele funktsioonile saab edastada 4 parameetrit.
Kui need parameetrid on olemas (nad pole kohustuslikud),
siis esimesse satub automaatselt vahetulemus,
teise satub massiivi element,
kolmandasse - selle number massiivis (indeks),
ja neljandasse - massiiv ise.
Vahetulemus - on muutuja,
milles koguneb väärtus,
mille meetod reduce tagastab, kui
see on läbi käinud kõik massiivi elemendid. Näiteks
sinna saab järjestikku koguda massiivi elementide summat:
kõigepealt panna esimene
element, järgmisel tsükli käigul juba
esimese ja teise elemendi summa, järgmisel
käigul - esimese, teise ja kolmanda summa.
Ja nii edasi, kuni massiiv lõppeb.
Funktsioon, mida reduce aktsepteerib,
peab tagastama uue vahetulemuse väärtuse.
Meetodi reduce teise parameetrina määratakse
vahetulemuse algväärtus.
Kui seda ei määrata, on see võrdne esimese
massiivi elemendiga ja elementide töötlemine algab
teisest elemendist.
Süntaks
massiiv.reduce(function(vahetulemus, element, indeks, massiiv) {
return uus vahetulemus;
}, algväärtus);
Näide
Leiame massiivi elementide summa:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Koodi täitmise tulemus:
21
Näide
Leiame kõikide positiivsete arvude summa massiivis:
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);
Koodi täitmise tulemus:
10