Funkcja reduce
może zostac wykonana na liście i przyjmuje dwa argumenty - callback
oraz initialValue
:
callback
jest funkcją, która przyjmuje 4 argumenty. Wykonywana jest tyle razy, ile elementów zawiera array.acc
- akumulator - jest to wartość, którą zwróciłcallback
w poprzedniej iteracjiel
- obecny element iteracjiindex
- indeks elementu w tablicyarr
- tablica, na której wykonano funkcję reduce.
initialValue
- wartość, która trafi docallbacku
jakoacc
w pierwszej iteracji
reduce
zwraca wartość, którą zwróciło ostatnie wykonanie callbacku
.
Ma wiele zastosowań, może by przydatna np. do obliczenia sumy:
const numbers = [2, 4, 6]; const sum = numbers.reduce((acc, el) => { return acc + el; }, 0); console.log(sum); // 12
...lub zamiany struktury danych z listy na obiekt:
const objs = [ { id: "1", value: "first" }, { id: "2", value: "second" }, ]; const idKeyed = objs.reduce((acc, el) => { acc[el.id] = el.value; return acc; }, {}); console.log(idKeyed); // {1: 'first', 2: 'second'}