给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
当前回答
是否有理由不首先过滤数组以删除非数字?看起来很简单:
[1, 2, 3, null, 'a'].filter((x) => !isNaN(x)).reduce((a, b) => a + b)
其他回答
使用递归
var sum = (arr) => arr.length === 1 ? arr[0] : arr.shift() + sum(arr);
sum([1,2,3,4]) // 10
您可以尝试以下代码:
[1, 2, 3, 4].reduce((pre,curr)=>pre+curr,0)
可以将reduce()方法与lambda表达式结合使用:
[1, 2, 3, 4].reduce((accumulator, currentValue) => accumulator + currentValue);
此外,对于简单数组,使用es6求和。
const sum = [1, 2, 3].reduce((partial_sum, a) => partial_sum + a,0);
console.log(sum);
对于具有默认初始化值的对象数组
const totalAmount = obj =>
Object.values(obj).reduce((acc, { order_qty, mrp_price }) =>
acc + order_qty * mrp_price, 0);
console.log(totalAmount);
考虑到您拥有阵列
const arr = [1, 2, 3, 4];
对我来说,最直观的方法是使用For in
let sum = 0;
for(var value in arr) {
sum += arr[value];
}
console.log('Array:', arr);
console.log('Sum:', sum);
然而,您也可以使用箭头函数和reduce函数
const sum = arr.reduce(function (a, b) {
return a + b;
}, 0);
console.log('Array:', arr);
console.log('Sum:', sum);
他们都会输出
Array: [ 1, 2, 3, 4]
Sum: 10