#3 JavaScript od Patysia czyli reduce

#3 JavaScript od Patysia czyli reduce

A więc reduce

Jak sama nazwa wskazuje służy do redukowania (niekoniecznie masy 🙂 ).  Wspaniały gdy potrzebujemy uzyskać np. sumę z tablicy albo sprowadzić do jednej zmiennej jakieś wartości.

Nudna suma

Przykład używany zawsze i wszędzie. Podstawa, którą jednak trzeba umieć i cała esencja reduce.

let numbers = [5, 6, 11, 47];

function getSum(total, num) {
return total +num;
}

// console.log(numbers.reduce(getSum, 0)) = 69

Zamówienia

Trochę bardziej z życia teraz. Programując strony internetowe i siedząc w biznesie często spotkasz coś w tym stylu. Fetchujesz sobie zamówienie użytkownika z serwera i musisz je jakoś przyjaźnie wyświetlić. Przecież nie dasz samego json’a 🙂


let data = [

{ name: '101 ćwiczeń z ziemi', amount: 1, price: 45 },

{ name: 'Myśleć jak koń', amount: 2, price: 55 }

]

let cost = data.reduce((total, order) => {

return total + (order.amount * order.price)

}, 0)

// console.log(cost) = 155

Nie ma co dużo mówić

Reduce jest bardzo prostą funkcją. Pozwala nam sprowadzić tablicę do pojedynczych wartości.

Budowa tej funkcji też jest prosta:

reduce(function (prev, item), initialValue)

Posiada dwa argumenty. Pierwszy to funkcja, która przechowuje poprzednią wartość oraz obecny element, a drugi to początkowa wartość od jakiej zaczynamy liczyć. Przelatuje ona po kolei po każdym polu z tablicy, zaczynając od initialValue i przekazując nam poprzedni stan (czyli np sumę) oraz obecny element do przetworzenia. Naszym zadaniem jest tylko zwrócić w tej funkcji to co chcemy przekazać do kolejnej iteracji itd. aż się skończy tablica.

Leave a Reply

Your email address will not be published. Required fields are marked *

*