You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码实现动态属性名的数组元素求和并追加结果?

适配动态属性名的数组求和追加实现

原有代码仅能处理固定属性名P2的对象数组,当每个对象的属性名不固定(如场景1的P1/P2/P3、场景2的P2/Total)时,需要调整代码以动态识别属性名。

解决思路

核心是动态获取每个对象的属性名:由于每个对象仅包含一个键值对,可通过Object.keys()提取当前对象的唯一属性名,再基于该属性名完成数组求和与结果追加操作。

调整后的完整代码

// 可替换为场景1或场景2的input数据
let input = [ 
     { "P1": [ 6, 6, 0 ] },
     { "P2": [ 3, 2, 0 ] },
     { "P3": [ 5, 1, 0 ] },
];

input.forEach(arrayItem => {
  // 获取当前对象的唯一属性名
  const propName = Object.keys(arrayItem)[0];
  // 计算数组元素的总和
  const sum = arrayItem[propName].reduce((partialSum, a) => partialSum + a, 0);
  // 将总和追加到数组末尾
  arrayItem[propName].push(sum);
});

console.log(input);

效果验证

  • 场景1执行后输出:
[ 
     { "P1": [ 6, 6, 0, 12 ] },
     { "P2": [ 3, 2, 0, 5 ] },
     { "P3": [ 5, 1, 0, 6 ] },
]
  • 场景2执行后输出:
[ 
     { "P2": [ 3, 3, 3, 2, 11 ] },
     { "P2": [ 7, 7, 7, 4, 25 ] },
     { "Total": [ 5, 1, 4, 6, 16 ] },
]

内容的提问来源于stack exchange,提问作者Aren Trot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:02:50