what does reduce method do code example
Example 1: reduce javascript
const sum = array.reduce((accumulator, element) => {
return accumulator + element;
}, 0);
// An example that will loop through an array adding
// each element to an accumulator and returning it
// The 0 at the end initializes accumulator to start at 0
// If array is [2, 4, 6], the returned value in sum
// will be 12 (0 + 2 + 4 + 6)
const product = array.reduce((accumulator, element) => {
return accumulator * element;
}, 1);
// Multiply all elements in array and return the total
// Initialize accumulator to start at 1
// If array is [2, 4, 6], the returned value in product
// will be 48 (1 * 2 * 4 * 6)
Example 2: javascript reduce
var array = [36, 25, 6, 15];
array.reduce(function(accumulator, currentValue) {
return accumulator + currentValue;
}, 0); // 36 + 25 + 6 + 15 = 82
Example 3: reduce javascript
/* this is our initial value i.e. the starting point*/
const initialValue = 0;
/* numbers array */
const numbers = [5, 10, 15];
/* reducer method that takes in the accumulator and next item */
const reducer = (accumulator, item) => {
return accumulator + item;
};
/* we give the reduce method our reducer function
and our initial value */
const total = numbers.reduce(reducer, initialValue)
Example 4: reduce method javascript
// Reduce() method executes a callback function that is passed in
// on each element of the array, resulting in single output value.
const array1 = [1, 2, 3, 4];
const callback = (accumulator, currentValue) => accumulator + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(callback));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(callback, 5));
// expected output: 15 because the initial value is 5.
// This is how Reduce works.
// This is a myReduce method which takes a callback and an optional argument
// of a default accumulator. If myReduce only receives one argument, then
// myReduce will use the first element as the accumulator.
Array.prototype.myReduce = function(callback, acc) {
if (!acc) {
acc = this.shift();
}
this.forEach(function(element) {
acc = callback(acc, element)
})
return acc;
}