reduce方法详解

75 阅读1分钟
arr.reduce((accumulator, currentValue, currentIndex, origin_array) => {

}, initValue)

image.png

  1. reduce接受两个参数,第一个为function,第二个为initValue,迭代类型取决于initValue;
  2. function接收四个参数,
    • 第一个为accumulator,累加值,取值初始值为initValue,如果没有指定则为数组第一个元素
    • 第二个为当前迭代value值,如果没有initValue,此时这里从index=1开始
    • 第三个为当前迭代index值
    • 第四个为原始数组 array

使用reduce 实现 map

    Array.prototype.MyMap=function( fn ){
       
       return this.reduce(function(result,curVal,curIndex,arr){
               
               result.push(fn(curVal,curIndex));
               return result;
       
       },[])
    }