计算数组元素总和的最快方法

时间:2012-01-07 21:36:03

标签: javascript

我正在尝试找到计算数组中包含的元素总和的最快方法 我设法使用eval(),但我考虑eval as evil

var arr = [10,20,30,40,50];
console.log( eval( arr.join('+') ) ); //logs 150

除了使用for loop

之外,还有更好的方法吗?

我正在考虑更多类似的东西,但它不起作用:

var arr = [10,20,30,40,50];  

console.log( new Number( arr.join('+') ) ); //logs a Number Object  

console.log( new Number( arr.join('+') ).toString() ); //logs NaN

3 个答案:

答案 0 :(得分:17)

最好的方法是使用for循环。不是最短的,但却是最好的。

答案 1 :(得分:17)

如果支持,您可以使用Array

reduce方法
var arr = [10, 20, 30, 40, 50];

console.log(arr.reduce(function(prev, cur) {
    return prev + cur;
}));

答案 2 :(得分:1)

For循环也更好,因为数组扩展了对象

var arr = [10, 20, 30, 40, 50];
var sum = 0;
for(var i = 0; i < arr.length; i++){
   sum = sum + arr[i];
}
console.log("Sum of array = ",sum);