Metoda reduce
Metoda reduce redukuje pole na
jednu hodnotu. Například,
pomocí této metody lze snadno najít součet
prvků pole (tj. pole se redukuje
na jednu hodnotu - na součet prvků).
Prvním parametrem metoda reduce přijímá
funkci, která se postupně provede
pro každý prvek pole, počínaje prvním.
Do této funkce lze předat 4 parametry.
Pokud tyto parametry existují (nejsou povinné),
tak do prvního bude automaticky dosazen mezivýsledek,
do druhého bude dosazen prvek
pole, do třetího - jeho číslo v poli (index),
a do čtvrtého - samotné pole.
Mezivýsledek - je proměnná,
ve které se bude akumulovat hodnota,
kterou metoda reduce vrátí, když
projde všechny prvky pole. Například,
lze do ní postupně ukládat součet
prvků pole: nejprve vložit první
prvek, při příštím průchodu cyklem již
součet prvního prvku a druhého,
při dalším průchodu - součet prvního, druhého a třetího.
A tak dále, dokud pole neskončí.
Funkce, kterou reduce přijímá,
by měla vracet novou hodnotu mezivýsledku.
Druhým parametrem metody reduce se určuje
počáteční hodnota mezivýsledku.
Pokud není uvedena, bude rovna prvnímu
prvku pole a zpracování prvků začne
od druhého prvku.
Syntaxe
pole.reduce(function(mezivýsledek, prvek, index, pole) {
return nový mezivýsledek;
}, počáteční hodnota);
Příklad
Najděme součet prvků pole:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Výsledek provedení kódu:
21
Příklad
Najděme součet všech kladných čísel pole:
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ýsledek provedení kódu:
10