Zapoznając się z tym artykułem dowiesz się do czedo służy metoda Array.prototype.reduce() w JS. Zapoznasz się też z przykładami użycia tej metody.
Do czedo służy recude() w JS (Array)?
Metoda reduce()
jest funkcją, która pozwala na przetworzenie wszystkich elementów tablicy w taki sposób, aby uzyskać jeden wynik.
Możesz użyć metody reduce(), gdy chcesz:
- zsumować wszystkie elementy tablicy,
- obliczyć średnią z jej elementów,
- połączyć wszystkie elementy tablicy w jednym ciągu tekstu,
- i nie tylko
Jaka jest składnia metody reduce() w JS (Array)?
Składnia metody reduce()
wygląda następująco:
array.reduce(function(accumulator, currentValue, currentIndex, array) {
// tutaj możesz wpisać kod, który określa, jak przetworzyć tablicę
}, initialValue);
function
to funkcja, która jest wywoływana dla każdego elementu tablicy. Funkcja ta ma cztery argumenty:accumulator
to akumulator, który przechowuje wartość po przetworzeniu dotychczasowych elementów tablicy. Zaczyna on odinitialValue
, jeśli zostanie on podany, lub od pierwszego elementu tablicy, jeśliinitialValue
nie zostanie podane.currentValue
to bieżąca wartość elementu tablicy, z którą jest wywoływana funkcja.currentIndex
to indeks bieżącego elementu tablicy, z którą jest wywoływana funkcja.array
to cała tablica, z którą jest wywoływana funkcja.
initialValue
(opcjonalne) to wartość początkowa, która jest używana jako pierwszy argument funkcjifunction
. Jeśli nie zostanie podana, pierwszy element tablicy zostanie użyty jakoinitialValue
.
Przykłady użycia metody reduce() w JS (Array)
Zapoznaj się z poniższymi przykładami i dokładnie je przeanalizuj. Analiza kodu to dobry sposób na naukę programowania.
Sumowanie elementów tablicy
W poniższym przykładzie zaczynamy od initialValue
równego 0
. Następnie dla każdego elementu tablicy dodajemy jego wartość do accumulator
i zwracamy nową wartość accumulator
. W ten sposób otrzymujemy sumę wszystkich elementów tablicy.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce(function(accumulator, currentValue) {
return accumulator + currentValue;
}, 0); // sum = 15
Obliczanie średniej z elementów tablicy
W tym przykładzie również używamy initialValue
równego 0
. Dla każdego elementu tablicy dodajemy jego wartość do accumulator
, a na końcu dzielimy accumulator
przez długość tablicy, aby otrzymać średnią z jej elementów.
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce(function(accumulator, currentValue, currentIndex, array) {
accumulator += currentValue;
if (currentIndex === array.length - 1) {
return accumulator / array.length;
}
return accumulator;
}, 0); // average = 3