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

JavaScript如何计算对象数组中指定属性的数值总和

开发需求

计算给定对象数组中data字段对应值的累加总和,注意数组元素的data字段存储的是字符串类型数值,求和前必须做类型转换,避免出现字符串拼接的错误结果。

参考测试数据
// 待求和的目标数组
const storage = [
  { data: '1', status: '0' },
  { data: '2', status: '0' },
  { data: '3', status: '0' },
  { data: '4', status: '0' },
  { data: '5', status: '0' },
  { data: '6', status: '0' },
  { data: '7', status: '1' },
];
实现代码

推荐使用Array.prototype.reduce实现遍历累加,代码简洁且性能符合常规场景要求:

const sum = storage.reduce((acc, cur) => {
  // 将字符串类型的data转为数字类型后累加,初始累加值设为0
  return acc + Number(cur.data)
}, 0)

console.log(sum) // 运行输出结果为28
注意事项
  • 累加初始值必须传入0,如果省略初始值,reduce会把数组第一个元素(对象类型)作为初始累加值,最终运算结果会出错
  • 禁止直接对字符串类型的data值做加法,否则会触发字符串拼接逻辑,比如'1' + '2'的运算结果是字符串'12',不是预期的数值3
  • 如果业务场景中存在data字段为空、值为非数字字符串的异常情况,可以在累加前增加校验逻辑,避免最终结果返回NaN:
    const sum = storage.reduce((acc, cur) => {
      const numVal = Number(cur.data)
      // 无效值直接跳过不累加
      if (isNaN(numVal)) return acc
      return acc + numVal
    }, 0)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 08:54:19