如何对两个键的最大值求和,object javascript

how to Sum the max from two keys similarly, object javascript

我需要对象的总和,其中,但是每个相似对的最大值 javascript

var score = {
    "work_1": 5,
    "work_1|pm": 10,
    "work_2": 8,
    "work_2|pm": 7
    "work_3": 10
};

work_3没有一对相似 我希望这个结果

总计 = 28

您可以使用 Object.values 获取对象的 属性 值,对结果数组进行排序,然后对前两项求和:

var score = {
    "work_1": 5,
    "work_1|pm": 10,
    "work_2": 8,
    "work_2|pm": 7,
    "work_3": 10
};

const max2 = Object.values(score).sort().splice(0, 2)

const result = max2[0] + max2[1];
console.log(result)

在新对象中按键前缀对最大值进行分组,然后对该对象的值求和。在这两个阶段,您都可以使用 reduce:

var score = {
    "work_1": 5,
    "work_1|pm": 10,
    "work_2": 8,
    "work_2|pm": 7,
    "work_3": 10
};

var result = Object.values(
    Object.entries(score).reduce((acc, [k, v]) => {
        k = k.split("|")[0];
        acc[k] = Math.max(v, acc[k] ?? v);
        return acc;
    }, {})
).reduce((a, b) => a + b, 0);

console.log(result);