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

如何修改reduce代码仅统计switcherStatus为true的同供应商awardedCapacity总和

实现代码

let newArr = [];
const accumulateResult = bidsList.reduce(function(acc, val) {
  // 仅处理switcherStatus为true的条目
  if (!val.switcherStatus) {
    return acc;
  }
  if (!acc[val.supplierName]) {
    acc[val.supplierName] = { 
      supplierName: val.supplierName, 
      totalAwarded: 0 
    };
  }
  acc[val.supplierName].totalAwarded += val.awardedCapacity;
  return acc;
}, {});

// 将累加结果转为数组,自动排除无符合条件条目的供应商
newArr = Object.values(accumulateResult);

console.log(newArr);

核心修改说明

  1. 在reduce回调开头新增开关状态判断:当前条目switcherStatus为false时直接跳过,不做统计
  2. 移除了原代码中reduce内部直接向newArr push元素的逻辑,避免把所有出现过的供应商(哪怕没有符合条件的条目)提前加入结果
  3. reduce执行完成后通过Object.values把累加对象转为结果数组,所有没有符合条件条目的供应商(比如示例中的C)不会出现在累加对象中,自然就被过滤掉

运行后输出结果和你给出的预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:54:02