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

JavaScript中如何正确计算对象数组内的属性值总和

问题根源

你定义的object是由3个独立对象组成的数组,而非包含a、b、c三个属性的单个对象。直接访问object.a/object.b/object.c拿到的全是undefined,三个undefined相加结果为NaN,自然无法得到正确结果。
你当前的代码结构:

// 这是长度为3的数组,每个元素是一个只有单个属性的对象
let object = [{a:5},{b:10},{c:15}];

如果硬要在这个结构下用索引访问取值,写法是object[0].a + object[1].b + object[2].c,但这种写法冗余且不符合你最初的调用预期,本质是数据结构定义和使用方式不匹配。

修复方案

方案1:调整数据结构(匹配你预期的调用写法)

如果就是要通过对象.属性的形式直接拿三个值求和,去掉外层数组,直接定义为单个对象即可:

// 定义包含a、b、c三个属性的单个对象
const numObj = {
  a: 5,
  b: 10,
  c: 15
};
// 直接求和
const sum = numObj.a + numObj.b + numObj.c;
console.log(sum); // 输出正确结果30

提示:不要用object作为变量名,它和JS原生的Object构造函数重名,容易引发隐蔽bug,建议替换为有实际语义的名称。

方案2:保留数组结构的写法

如果你确实需要用数组存储这三个对象,可以通过遍历累加的方式计算总和:

const objArr = [{a:5},{b:10},{c:15}];
const sum = objArr.reduce((total, current) => {
  // 取出当前对象的属性值累加
  return total + Object.values(current)[0];
}, 0);
console.log(sum); // 输出30

内容的提问来源于stack exchange,提问作者Tripti Verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:57:20