给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
当前回答
是否有理由不首先过滤数组以删除非数字?看起来很简单:
[1, 2, 3, null, 'a'].filter((x) => !isNaN(x)).reduce((a, b) => a + b)
其他回答
使用for循环:
const array = [1, 2, 3, 4];
let result = 0;
for (let i = 0; i < array.length - 1; i++) {
result += array[i];
}
console.log(result); // Should give 10
甚至是forEach循环:
const array = [1, 2, 3, 4];
let result = 0;
array.forEach(number => {
result += number;
})
console.log(result); // Should give 10
为简单起见,请使用reduce:
const array = [10, 20, 30, 40];
const add = (a, b) => a + b
const result = array.reduce(add);
console.log(result); // Should give 100
对于真正大量的人来说,循环或减少可能是过程密集型的。使用高斯怎么样?
sum = (n * (n+1))/2;
来自mathcentral。
为什么不减少?这通常有点反直觉,但使用它求和非常简单:
var a = [1,2,3];
var sum = a.reduce(function(a, b) { return a + b; }, 0);
var totally = eval(arr.join('+'))
这样你就可以在阵列中放置各种各样的异国情调的东西。
var arr = ['(1/3)','Date.now()','foo','bar()',1,2,3,4]
我只是半开玩笑。
您可以使用for of循环求和,如下所示:
let arr = [1, 2, 3, 4];
let total = 0;
for (let i of arr) {
total += i;
}
console.log(total)