一. 定义
**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)); // 6console.log(arr.newReduce((a, b) => { return a + b;}, 0)); // 6
