Necesito la suma total del objeto, donde, pero el máximo de cada par similar javascript
var score = { "work_1": 5, "work_1|pm": 10, "work_2": 8, "work_2|pm": 7 "work_3": 10 };el trabajo_3 no tiene un par similar deseo este resultado
totales = 28
Agrupe los máximos por prefijo de clave en un nuevo objeto y luego sume los valores de ese objeto. En ambas fases puedes usar 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);Puede obtener los valores de propiedad del objeto con Object.values , ordenar la matriz resultante y luego sumar los primeros 2 elementos:
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)