Some nice explanations about this array method absed on: https://github.com/loverajoel/jstips/blob/gh-pages/_posts/en/2016-02-17-reminders-about-reduce-function-usage.md
var items = [{price: 10}, {price: 120}, {price: 1000}];
// our reducer function
var reducer = function add(sumSoFar, nextPrice) {
return sumSoFar + nextPrice.price;
};
// do the job
var total = items.reduce(reducer, 0);
console.log(total); // 1130
var total = items.reduce(reducer, -20);
console.log(total); // 1110
const arr = [108, 609, 232, 787];
const initialInfo = {totalScore: 0, itemCount: 0};
// Funkcja reducera nie musi posiadać 'accumulator' z jednym argumentem:
function addScores({totalScore, itemCount}, score) {
return {
totalScore: totalScore + score,
itemCount: itemCount + 1,
};
}
const result = arr.reduce(addScores, initialInfo);