Kategorie
Obiekty wbudowane

JavaScript Array: reduce()

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
Model działania metody reduce() w obiektach Array w JS.

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 od initialValue, jeśli zostanie on podany, lub od pierwszego elementu tablicy, jeśli initialValue 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 funkcji function. Jeśli nie zostanie podana, pierwszy element tablicy zostanie użyty jako initialValue.

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