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

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


当前回答

使用reduce

设arr=[1,2,3,4];设和=arr.reduce((v,i)=>(v+i));console.log(总和);

其他回答

是否有理由不首先过滤数组以删除非数字?看起来很简单:

[1, 2, 3, null, 'a'].filter((x) => !isNaN(x)).reduce((a, b) => a + b)

如果您恰好使用Lodash,则可以使用sum函数

array = [1, 2, 3, 4];
sum = _.sum(array); // sum == 10

这正是减薪的工作。

如果您使用的是ECMAScript 2015(又名ECMAScript6):

constsum=[1,2,3]。reduce((partialSum,a)=>partialSum+a,0);console.log(总和);//6.

对于旧的JS:

常量sum=[1,2,3]。reduce(add,0);//数组为空时避免使用初始值函数add(累加器,a){返回蓄能器+a;}console.log(总和);//6.

这不是很漂亮吗?:-)

为什么不减少?这通常有点反直觉,但使用它求和非常简单:

var a = [1,2,3];
var sum = a.reduce(function(a, b) { return a + b; }, 0);

您可以尝试以下代码:

[1, 2, 3, 4].reduce((pre,curr)=>pre+curr,0)