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)
以上可参照原文链接:https://blog.csdn.net/qq_2683...
数组内元素累计相加:
//有初始值initValue的情况
var arr = [1,2,3,4,5,6];
arr.reduce(
((result, curValue) =>(result+curValue)
),0) //1+2+3+4+5+6=21
数组内元素累计相减
//没有初始值initValue
var arr = [1,2,3,4,5,6];
arr.reduce(
(result, curValue) =>(result-curValue)
);//1-2-3-4-5-6=-19
数组内元素累计相乘
var arr = [1,2,3,4,5,6];
arr.reduce(
(result, curValue) =>(result*curValue)
);//1*2*3*4*5*6=720
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。