Вы можете взять объект и уменьшить массив, взяв name
и points
и назначив добавленное points
свойству с помощью name
.
var input = [{ name: "Smith", points: 50 }, { name: "Rock", points: 27 }, { name: "John", points: 50 }, { name: "Rock", points: 800 }, { name: "Smith", points: 20 }, { name: "John", points: 80 }],
result = input.reduce((r, { name, points }) => {
r[name] = (r[name] || 0) + points;
return r;
}, {});
console.log(result);