如何在JavaScript中计算嵌套对象各一级属性的子属性值总和
嵌套对象一级子属性求和的JavaScript实现
需求说明
输入为两层嵌套结构的对象,需要计算每个一级属性对应的子对象所有数值属性的总和,按指定格式输出结果。
输入示例
{ "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
实现代码
直接使用JS内置的对象遍历和数组累加方法即可实现:
const input = { "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 } }; Object.entries(input).forEach(([parentKey, childObj]) => { const total = Object.values(childObj).reduce((sum, val) => sum + val, 0); console.log(`${parentKey} = ${total}`); });
逻辑说明
Object.entries(input)获取输入对象所有一级键值对,遍历得到每个一级属性名和对应的子对象Object.values(childObj)提取子对象的所有属性值,返回数值数组reduce()方法对数组元素累加求和,初始值设为0避免空对象报错- 最后用模板字符串拼接成要求的输出格式打印即可
内容的提问来源于stack exchange,提问作者manju k
相关产品推荐
相关产品推荐

