首页 > 解决方案 > 从数组对象中获取数字的总和

问题描述

我想得到所有数组项的总和。

const arr = [{ a: 1 }, { b: 5 }, { c: 2 }];

const app = (arr) => {
    const r = arr.reduce((acc, nextValue) => {
        return acc[Object.keys(acc)] + nextValue[Object.keys(nextValue)]
    })
    return r
}
console.log(app(arr))

所以,最后我想得到:8=总和:{ a: 1 }, { b: 5 }, { c: 2 }
问题:为什么现在我得到NaN结果?

标签: javascript

解决方案


您需要一个零起始值和键数组的第一个键,而不是整个数组。

求和直接取累加器。

const arr = [{ a: 1 }, { b: 5 }, { c: 2 }];
const app = (arr) => {
    const r = arr.reduce((acc, nextValue) => {
        return acc + nextValue[Object.keys(nextValue)[0]];
    }, 0);
    return r;
};

console.log(app(arr));


推荐阅读