Metoda reduce
Metoda reduce redukuje tablicę do
jednej wartości (redukuje). Na przykład,
za pomocą tej metody można łatwo znaleźć sumę
elementów tablicy (czyli tablica zostanie zredukowana
do jednej wartości - do sumy elementów).
Pierwszym parametrem metoda reduce otrzymuje
funkcję, która wykona się sekwencyjnie
dla każdego elementu tablicy, zaczynając od pierwszego.
Do tej funkcji można przekazać 4 parametry.
Jeśli te parametry istnieją (nie są obowiązkowe),
to pierwszy automatycznie otrzyma wynik pośredni,
drugi otrzyma element
tablicy, trzeci - jego numer w tablicy (indeks),
a czwarty - samą tablicę.
Wynik pośredni - to zmienna,
w której będzie akumulowana ta wartość,
którą zwróci metoda reduce, gdy
przejdzie przez wszystkie elementy tablicy. Na przykład,
można tam sekwencyjnie akumulować sumę
elementów tablicy: najpierw umieścić pierwszy
element, przy następnym przejściu pętli już
sumę pierwszego elementu i drugiego, przy następnym
przejściu - sumę pierwszego, drugiego i trzeciego.
I tak dalej, aż tablica się nie skończy.
Funkcja, którą przyjmuje reduce,
powinna zwracać nową wartość wyniku pośredniego.
Drugim parametrem metody reduce jest
początkowa wartość wyniku pośredniego.
Jeśli jej nie podano, to będzie równa pierwszemu
elementowi tablicy, a przetwarzanie elementów rozpocznie się
od drugiego elementu.
Składnia
tablica.reduce(function(wynik_pośredni, element, indeks, tablica) {
return nowy_wynik_pośredni;
}, wartość_początkowa);
Przykład
Znajdźmy sumę elementów tablicy:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Wynik wykonania kodu:
21
Przykład
Znajdźmy sumę wszystkich dodatnich liczb tablicy:
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);
Wynik wykonania kodu:
10