给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)

我认为每个美元可能有用,但我不确定如何实现它。


当前回答

我看到所有答案都是“减少”解决方案

var array = [1,2,3,4]
var total = 0
for (var i = 0; i < array.length; i++) {
    total += array[i]
}
console.log(total)

其他回答

我看到所有答案都是“减少”解决方案

var array = [1,2,3,4]
var total = 0
for (var i = 0; i < array.length; i++) {
    total += array[i]
}
console.log(total)

精确

对数组进行排序并以最小的数字开始求和(代码段显示了与非排序的区别)

[...arr].sort((a,b)=>a-b).reduce((a,c)=>a+c,0)

arr=[,6,9,1,1,1,1,.1,.1]sum=arr.reduce((a,c)=>a+c,0)sortSum=[…arr].sort((a,b)=>a-b).reduce((a、c)=>a+c,0)console.log('sum:',sum);console.log('sortSum:',sortSum);console.log('sum==sortSum:',sum==sortSum);//我们使用.sort((a,b)=>a-b)代替.sort(),因为//第二个将元素视为字符串(因此方式错误)//例如[1,10,9,20,93].sort()-->[1,10,20,9,93]

对于多维数字数组,使用arr.flat(无限)

arr=[[[1,2,3,4],[1,2,3,4],[1,2,4],[ [1,2,3,4],[1,2,3,4],[1,2,3,4] ] ];sum=arr.flat(无限).reduce((a,c)=>a+c,0);console.log(总和);//60

Vanilla JavaScript是您所需要的一切:

> a = [1,2,3,4]; a.foo = 5; a['bar'] = 6; sum = 0; a.forEach(function(e){sum += e}); sum
10
> a = [1,2,3,4]; a.foo = 5; a['bar'] = 6; sum = 0; a.forEach(e => sum += e); sum
10
> a = [1,2,3,4]; a.foo = 5; a['bar'] = 6; sum = 0; for(e in a) sum += e; sum
"00123foobar"
> a = [1,2,3,4]; a.foo = 5; a['bar'] = 6; sum = 0; for(e of a) sum += e; sum
10
var arr = [1, 2, 3, 4];
var total = 0;
for (var i in arr) {
  total += arr[i];
}

标准JavaScript解决方案:

var addition = [];
addition.push(2);
addition.push(3);

var total = 0;
for (var i = 0; i < addition.length; i++)
{
    total += addition[i];
}
alert(total);          // Just to output an example
/* console.log(total); // Just to output an example with Firebug */

这对我有用(结果应该是5)。我希望这种解决方案没有隐藏的缺点。