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

JavaScript如何实现对象相似键取最大值后累加求和

JavaScript 按相似键分组取最大值求和实现

实现思路

  • 分组规则:以键名中|pm作为配对后缀标识,去除该后缀后字符串相同的键属于同一配对组
  • 遍历目标对象的所有键值对,按上述前缀规则分组存储对应值
  • 遍历所有分组取每组最大值,累加所有最大值得到最终总和

完整实现代码

function calcSum(scoreObj) {
    const groupMap = {};
    // 按键前缀分组
    Object.entries(scoreObj).forEach(([key, value]) => {
        const prefix = key.split('|pm')[0];
        if (!groupMap[prefix]) {
            groupMap[prefix] = [];
        }
        groupMap[prefix].push(value);
    });
    // 分组取最大值累加
    let total = 0;
    Object.values(groupMap).forEach(values => {
        total += Math.max(...values);
    });
    return total;
}

// 测试示例
const score = {
    "work_1": 5,
    "work_1|pm": 10,
    "work_2": 8,
    "work_2|pm": 7,
    "work_3": 10
};
console.log(calcSum(score)); // 输出 28

结果说明

对示例对象执行上述代码,得到的总和为28,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:45:03