JS 数组相加的几种方式

JavaScript09

JS 数组相加的几种方式,第1张

js数组求和的方法

vararray = [1,2,3,4,5]

varsum =0

1.for循环

for(leti =0i <array.lengthi++) {

        sum += array[i]

    }

2.forEach

array.forEach(ele=>{

        sum += ele

    })

3.归并方法reduce()和 reduceRight()

//这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中, reduce()方法从数组的第一项开始,逐个遍历到最后。

//而 reduceRight()则从数组的最后一项开始,向前遍历到第一项 

varsum1 = array.reduce(function(prev, next, index, array){

returnprev + next

    })

varsum2 = array.reduceRight(function(last, before, index, array){

returnlast + before

    })

4.eval()

eval(array.join("+"))

var sum = function(a,b,c){

    return a + b + c

}

var result = sum(1,2,3) // 1+2+3

// 不限参数个数的

var sum2 = function(){

    var res = 0

    for(var i=arguments.length - 1i>=0i--){

        res += arguments[i]

    }

    return res

}

var res1 = sum2(1,2,3) // 1+2+3

var res2 = sum2(1,2,3,4,5,6,7) // 1+2+3+4+5+6

// 数组求和除了一般的for,while, foreach, map, filter难道就没有更简单的方法了??

// 答案肯定是 NO NO NO!

// 数组的 reduce() 和 reduceRight() 求和方法!

示例[ES6]:

let numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

console.log(numList.reduce((n,m) => n+m))

// 结果: 55

// 注意: 如果看不懂箭头函数的小伙伴们,请先了解下ES6。实在没空,下边附上ES5语法示例!

示例[ES5]:

var numList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

console.log(numList.reduce(function (n, m) {

    return n + m

}))

// 综上所述: reduce() 和 reduceRight()效果一样,唯一不一样的就是一个从左开始算,一个从右开始算!