给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
当前回答
可以将reduce()方法与lambda表达式结合使用:
[1, 2, 3, 4].reduce((accumulator, currentValue) => accumulator + currentValue);
其他回答
当数组由字符串组成时,必须更改代码。如果数组是数据库请求的结果,则可能是这种情况。此代码有效:
alert(
["1", "2", "3", "4"].reduce((a, b) => Number(a) + Number(b), 0)
);
这里,[“1”,“2”,“3”,“4”]是字符串数组,函数Number()将字符串转换为数字。
这正是减薪的工作。
如果您使用的是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.
这不是很漂亮吗?:-)
对于真正大量的人来说,循环或减少可能是过程密集型的。使用高斯怎么样?
sum = (n * (n+1))/2;
来自mathcentral。
非常简单
步骤1我们应该有一个数组,如:
const arrayNumber = [500,152,154,1555,12445];
第2步(如果需要,可以忽略这个步骤)要确保表中的所有值都是数字
let newArray = [];
for (let i = 0; i < arrayNumber.length; i++) {
newArray.push(parseInt(arrayNumber[i], 10));
}
步骤3
const sumInArray = dataData.reduce( (a, b) => a + b);
最后
console.log(sumInArray);
没有人提到函数式编程,但在这种情况下使用Ramda是非常干净的方法:
//Assuming you use nodejs, but can also be used in browser
const R = require('ramda');
let nums = [2, 4, 6, 8, 10];
console.log(R.sum(nums));