Array.prototype.reduce 用法

179 阅读1分钟

reduce 累加器,会从数组左边往右边依次计算,因此可以用来替换for循环等一系列其他操作

/*
    * parameter 
    *   callback => (  // 回调
            accumulator  // 累加器累加回调的返回值
            currentValue // 数组中正在处理的元素
            currentIndex ? //数组中正在处理的当前元素的索引
            array ? //调用reduce的数组
        )=>{ code }
        
        initialValue ?  //初始化累加器的值 (若 不填则将数组array[0]设置为累加器的初始值)
    *

*/
    
    function reduce( callback[, initialValue] ){ [native code] }

注意: initialValue 若 不填则将数组array[0]设置为累加器的初始值

1. initialValue 设置为 100

let arr = [2,4,5,7,9,10]
arr.reduce( (accumulator,currentValue,currentIndex) => {
    console.log(`当前索引${currentIndex}对应的值${currentValue},截止累加器的值${accumulator}`)
    return accumulator + currentValue
},100)

2. initialValue 不设置

let arr = [2,4,5,7,9,10]
arr.reduce( (accumulator,currentValue,currentIndex) => {
    console.log(`当前索引${currentIndex}对应的值${currentValue},截止累加器的值${accumulator}`)
    return accumulator + currentValue
})