- reduce 方法对数组中的每个元素按序执行一个提供的 reducer 函数
- 每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
reduce(callbackFn)
reduce(callbackFn, initialValue)
函数具体内容
- reduce 方法是一个迭代方法。
- 它按升序对数组中的所有元素运行一个“reducer”回调函数,并将它们累积到一个单一的值中。
- 每次调用时,callbackFn 的返回值都作为 accumulator 参数传递到下一次调用中。
- accumulator 的最终值(也就是在数组的最后一次迭代中从 callbackFn 返回的值)将作为 reduce() 的返回值。
const sum = (arr) => arr.reduce((acc, cur) => acc cur, 0);
//累计值为acc
//当前值为cur
//初始值为initialValue 为0
let arr = [1, 2, 3, 4, 5];
console.log("参数为:", arr);
console.log("总和为:", sum(arr));
const product = (arr) => arr.reduce((acc, curr) => acc * curr, 1);
let arr1 = [1, 2, 3, 4, 5];
console.log("参数为:", arr1);
console.log("乘积为:", product(arr1));
const flatten = (arr) => arr.reduce((acc, curr) => acc.concat(curr), []);
let arr = [[1, 2], [3, 4], [5]];
console.log("参数为:", arr);
console.log("结果为:", flatten(arr));
const average = (arr) => arr.reduce((acc, curr) => acc curr, 0) / arr.length;
let arr = [1, 2, 3, 4, 5];
console.log("参数为:", arr);
console.log("结果为:", average(arr));