let arr = [1,2,3]
/*
reduce takes in a callback function, which takes in an accumulator
and a currentValue.
accumulator = return value of the previous iteration
currentValue = current value in the array
*/
// So for example, this would return the total sum:
const totalSum = arr.reduce(function(accumulator, currentVal) {
return accumulator + currentVal
}, 0);
> totalSum == 0 + 1 + 2 + 3 == 6
/*
The '0' after the callback is the starting value of whatever is being
accumulated, if omitted it will default to whatever the first value in
the array is, i.e:
> totalSum == 1 + 2 + 3 == 6
if the starting value was set to -1 for ex, the totalSum would be:
> totalSum == -1 + 1 + 2 + 3 == 5
*/
// arr.reduceRight does the same thing, just from right to left