需要帮助了解如何获得多个数组的总和。
这是我从控制台输出的数据。log:
(4) [empty, Array(1), Array(1), Array(4)]
1: [50, 30]
2: [100, 100, 50]
3: (4) [500, 10, 50, 300]
预期输出:
1: [80]
2: [250]
3: [860]
使用的方法:
下面的代码不起作用,它只是每行的列
const savingsTotal = saveID[0].map((x, idx) => saveID.reduce((sum, curr) => sum + curr[idx], 0));
代码源:如何计算多个数组的和?
这段代码给了我一个奇怪的字符串:
const savingsTotal = saveID.reduce((sum, value) => sum += value, 0)
输出:050100500,10,50,300
我想如果我用一个键列出会起作用,例如[saved:500],但是它也不起作用。
const savingsTotal = saveID.map(({saved}) => saved.reduce((sum, value) => sum += value, 0))
输出:中断代码,找不到[saved:500],因为以前的功能是:
if (save.length > 0 ) {
const saveID = save.reduce((savedAmount, { goal_id, saved }) => {
(savedAmount[goal_id] = savedAmount[goal_id] || []).push({"saved": saved});
return savedAmount;
}, []); ****Changed the .push so I would be able to add a key, normally it's without.
代码来源:如何获取一个对象数组中多个数组的和?
有人能帮我理清逻辑吗?
映射到原始数组。然后使用CCD_ 2得到它们各部分的总和:
const ar = [[50, 30], [100, 100, 50], [500, 10, 50, 300]];
const sum_array = ar.map(item => item.reduce((acc, val) => acc + val, 0))
console.log(sum_array)
您可以在外部数组上循环,并使用reduce
来查找每个组成数组的和。
const arr = [, [50, 30],[100, 100, 50], [500, 10, 50, 300]];
for(let i = 0; i < arr.length; i++){
if(Array.isArray(arr[i])){
console.log(i + ': ' + arr[i].reduce((acc,curr)=>acc+curr, 0));
}
}
如果您想生成一个结果数组,而不仅仅是打印它,您可以使用map
。
const arr = [, [50, 30],[100, 100, 50], [500, 10, 50, 300]];
const res = arr.map(x => x.reduce((acc,curr)=>acc+curr, 0));
console.log(res);
试试这个:
let arr = [10, 70],
arr2 = [100, 100, 50],
arr3 = [500, 10, 50, 300]
console.log(arr.reduce((sum, carry) => sum + carry));
console.log(arr2.reduce((sum, carry) => sum + carry));
console.log(arr3.reduce((sum, carry) => sum + carry));