JS之reduce()——实现数组的快捷运算

      reduce()是数组的原生方法,与forEach()、map()等方法一样,都会对数组中的每一项进行遍历,接收两个参数,返回数组遍历后最终运算的结果,语法如下:

Array.reduce(function(result,curValue,curIndex,array), initialValue)
  • 参数一,必需,用于执行数组中每一项的函数,包括四个参数
    • result-必需:当有 initialValue 时,result 的初始值为 initialValue ,否则为数组的第一项,之后为function运行后的结果
    • curValue-必需:当前正在执行的数组的元素
    • curIndex-可选:当前正在执行的数组的索引
    • array-可选:当前元素所属的数组对象,即执行reduce方法的数组
  • 参数二,可选
    • 当有initialValue时,curIndex从0开始,result的初始值为initialValue
    • 当没有initialValue时,curIndex从1开始,result的初始值为数组的第一项

      看起来比较复杂,下面以数组求和为例验证一下

//有初始值initValue的情况
var arr = [1,2,3,4,5,6];
arr.reduce(function(result,curValue,curIndex,array){
    console.log(result,curValue,curIndex,array)
    return result + curValue;
},7)

      输出结果如下

JS之reduce()——实现数组的快捷运算_第1张图片

//没有初始值initValue的情况
var arr = [1,2,3,4,5,6];
arr.reduce(function(result,curValue,curIndex,array){
    console.log(result,curValue,curIndex,array)
    return result + curValue;
})

      输出结果如下

JS之reduce()——实现数组的快捷运算_第2张图片

      同理,可以用reduce对数组进行最大值,最小值,去重等运算。

你可能感兴趣的:(JavaScript)