关于javascript:JSreduce实现数组的快捷运算数组内元素累计相加减乘除

2次阅读

共计 987 个字符,预计需要花费 3 分钟才能阅读完成。

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
正文完
 0