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

如何计算数组元素总和?可用积分reduce求和结果异常问题

问题分析与解决方案

问题根源

你的代码存在两个关键错误:

  • 错误地将原本就是数组的credits用[credits]包裹,形成了二维数组,reduce实际遍历的是外层数组的单个元素(即原credits数组),导致累加逻辑完全错误。
  • reduce回调函数中没有提取每个对象的available属性值,反而直接累加整个对象,同时参数命名混淆(credits作为累加器,和原数组名冲突),进一步导致计算结果异常。

修正后的代码

const totalAvailableCredits = credits.reduce((total, item) => {
  return total + item.available;
}, 0);

代码说明

  1. 直接使用原数组credits调用reduce,无需额外包裹。
  2. 回调函数第一个参数total是累加器,用于存储当前的总和;第二个参数item是数组中当前遍历的对象元素。
  3. 每次累加时提取item.available(即每个对象的可用积分值),与total相加。
  4. 初始值设为0,确保数组为空时返回正确的0值。

验证结果

针对你提供的数组:

const credits = [
  {creditId: 71, expiresOn: '2023-09-26T14:33:58Z', available: 10, createdOn: '2022-09-26T14:33:58Z'},
  {creditId: 265, expiresOn: '2023-10-26T18:05:54Z', available: 2, createdOn: '2022-10-26T18:05:54Z'}
];

修正后的代码会正确计算出总和:10 + 2 = 12。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:35:23