JS数组求和的几种方式

11,764 阅读1分钟

[Talk is cheap. Show me the code]

不想看理论知识请直接移步最后代码示例。

这里只写了几个简单的例子,其中sum2方法在掘金上有很多争议的地方。自己仅作为学习记录下来。

一、es5

 function sum(arr){
    if(Array.isArray(arr)){
        var arrSum = 0
        for(var i=0;i<arr.length;i++){
            arrSum +=arr[i]
        }
        return arrSum  
    }
 }
function sum2(arr){
    if(Array.isArray(arr)){
        var arrSum = 0
        for(var i=0;i<arr.length;i++){
            arrSum += arr[i]+arr[arr.length-i-1]
        }
        return arrSum/2  
    }
}

 function sum3(arr){
    if(Array.isArray(arr)){
       let  arrSum = 0
       arr.forEach((item,index) => {
        arrSum+=item
       })
       return arrSum
    } 
}
function sum4(arr){
    if(Array.isArray(arr)){
       let  arrSum = 0
       arrSum = eval(arr.join('+')) 
       return arrSum
    }  
}
 /** 等差数列求和*/
function sum5(arr){
    if(Array.isArray(arr)){
        var arrSum = 0
        arrSum = (arr[0]+arr[arr.length-1])*arr.length/2
        return arrSum  
    } 
}

二、es6

/** es6 */
// prev:上次调用函数的返回值
// current:当前元素
// index:当前元素的索引
// arr:当前被遍历的数组
var sumEqual = arr.reduce((prev,current,index,arr)=>{
    return prev+current
})

如果有任何关于本文的意见,欢迎在文章下方留言,我会在看到的第一时间回复。