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

如何从对象数组中计算指定字段值并生成对应统计新对象

实现代码(JavaScript)

// 原始数组
const caseList = [
  {
    caseStatus: "Closed",
    caseDays: 5,
    caseRate: 40
  },
  {
    caseStatus: "Closed",
    caseDays: 8,
    caseRate: 25
  },
  {
    caseStatus: "Active",
    caseDays: 5,
    caseRate: undefined
  }
];

// 统计逻辑
const result = caseList.reduce((acc, cur) => {
  if (cur.caseStatus === 'Active') {
    acc.countActive += 1;
  } else if (cur.caseStatus === 'Closed') {
    acc.countClosed += 1;
    acc.ClosedCaseDaysSum += cur.caseDays || 0;
    acc.ClosedCaseRateSum += cur.caseRate || 0;
  }
  return acc;
}, {
  countActive: 0,
  countClosed: 0,
  ClosedCaseDaysSum: 0,
  ClosedCaseRateSum: 0
});

console.log(result);

输出结果

运行后得到的result完全符合要求的结构:

{
  countActive: 1,
  countClosed: 2,
  ClosedCaseDaysSum: 13,
  ClosedCaseRateSum: 65
}

补充说明

  • 用reduce方法单次遍历完成所有统计,时间复杂度为O(n),效率更高
  • 求和时添加|| 0容错处理,即使Closed状态条目出现caseDays/caseRate为undefined、null的异常值,也不会出现NaN的计算错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:27:03