El método reduce nos permite tomar todos los valores de un array y reducirlos a uno solo, por lo tanto este método no retorna un array, sino un único valor. No modifica el array original, es inmutable.
arrayName.reduce(
(accumulator, item, index /*optional*/, array /*optional*/) => { /*code*/ },
accumulatorInitialValue
);
Este método recibe dos argumentos:
acumulator
. Puede tomar 4 argumentos:
callback
en cada iteración.accumulator
en la primera iteración.const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce(
(accumulator, number) => {
console.log(`accumulator: ${accumulator}, number: ${number}, return_value: ${accumulator + number}`);
return accumulator + number;
},
5
);
console.log(sum) // 20
/* expected output: */
// primera vuelta -> accumulator: 5, number: 1, return_value: 6
// segunda vuelta -> accumulator: 6, number: 2, return_value: 8
// tercera vuelta -> accumulator: 8, number: 3, return_value: 11
// cuarta vuelta -> accumulator: 11, number: 4, return_value: 15
// quinta vuelta -> accumulator: 15, number: 5, return_value: 20
// final result -> 20