一. 定义
**reduce()**
方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
二. 用法
**reduce()**
方法按照原始数组元素顺序依次累加元素。
注意:
**reduce()**
不会对空数组进行累加。**reduce()**
不会改变原始数组。三. 手写代码
Array.prototype.newReduce = function(fn, initVal){
let arr = this;
let result = initVal;
let i = 0;
if(!initVal){
result = arr[0];
i++;
};
for(i; i<arr.length; i++){
result = fn(result, arr[i]);
}
return result;
}
四. 测试代码
const arr = [1, 2, 3];
console.log(arr.reduce((a, b) => { return a + b;}, 0)); // 6
console.log(arr.newReduce((a, b) => { return a + b;}, 0)); // 6