Reduce-metodi
reduce-metodi supistaa taulukon
yhdeksi arvoksi (redukoida). Esimerkiksi
tämän menetelmän avulla voidaan helposti löytää taulukon
elementtien summa (eli taulukko supistuu
yhdeksi arvoksi - elementtien summaksi).
Ensimmäisenä parametrina reduce-metodi saa
funktion, joka suoritetaan peräkkäin
jokaiselle taulukon elementille alkaen ensimmäisestä.
Tähän funktioon voidaan välittää 4 parametria.
Jos nämä parametrit ovat olemassa (ne eivät ole pakollisia),
niin ensimmäiseen tulee automaattisesti väliarvo,
toiseen tulee taulukon elementti,
kolmanteen - sen numero taulukossa (indeksi),
ja neljänteen - itse taulukko.
Väliarvo on muuttuja,
jossa kertyy se arvo,
joka reduce-metodi palauttaa, kun
se on käynyt läpi kaikki taulukon elementit. Esimerkiksi
siihen voidaan peräkkäin kertya taulukon elementtien summa:
ensin laitetaan ensimmäinen
elementti, seuraavalla silmukan kierroksella jo
ensimmäisen ja toisen elementin summa,
seuraavalla kierroksella - ensimmäisen, toisen ja kolmannen summan.
Ja niin edelleen, kunnes taulukko loppuu.
reduce-metodin ottaman funktion
tulee palauttaa väliarvon uusi arvo.
reduce-metodin toisena parametrina määritetään
väliarvon alkuarvo.
Jos sitä ei määritä, se on yhtä suuri kuin ensimmäinen
taulukon elementti, ja elementtien käsittely alkaa
toisesta elementistä.
Syntaksi
taulukko.reduce(function(väliarvo, elementti, indeksi, taulukko) {
return uusi väliarvo;
}, alkuarvo);
Esimerkki
Etsitään taulukon elementtien summa:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(summa, elem) {
return summa + elem;
}, 0);
console.log(res);
Koodin suorituksen tulos:
21
Esimerkki
Etsitään kaikkien positiivisten numeroiden summa taulukosta:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(summa, elem) {
if (elem >= 0) {
return summa + elem;
} else {
return summa;
}
}, 0);
console.log(res);
Koodin suorituksen tulos:
10