获取对象的总和 属性 值的方法

Way to get the sum property values of an object

我想得到对象属性的总和

这是我的输入

{
    "Obj1": {
        "1": 50,
        "2": 45.5,
        "3": 15,
        "4": 10,
        "5": 20
    },   
    "Obj2": {
        "1": 12.5,
        "2": 0,
        "3": 0,
        "4": 12.5,
        "5": 0
    }
}

希望我的输出是

Obj1 = 140.5          
Obj2 = 25

让我知道是否有办法获得上述 javascript

中提到的输出

提前致谢!!!

这应该适用于您的用例:

const data = {
    "Obj1": { "1": 50, "2": 45.5, "3": 15, "4": 10, "5": 20 },
    "Obj2": { "1": 12.5, "2": 0, "3": 0, "4": 12.5, "5": 0 },
};

const sums = {};
for (const key in data) {
    sums[key] = Object.values(data[key]).reduce((tot, v) => tot + v, 0);
}
console.log(sums);
// {
//     "Obj1": 140.5,
//     "Obj2": 25
// }

请注意,对于子对象的顺序键,使用数组可能会更好。

这是一种使用 Object.assign 和 reduce 创建一个对象的方法,该对象具有与您想要的结果相对应的 key/value 对。

const data = {
  "Obj1": { "1": 50, "2": 45.5, "3": 15, "4": 10, "5": 20 },
  "Obj2": { "1": 12.5, "2": 0, "3": 0, "4": 12.5, "5": 0 },
};
const result = Object.assign({}, ...Object.entries(data).map(e => ({[e[0]]: Object.entries(e[1]).reduce((b,a) => b+a[1],0)})))
console.log(result)