Witam.
Mam tablicę z obiektami które mają dwa pola x i y,
fragment:
const array = [ { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 1, y: 2 }, { x: 3, y: 12 } ]
Chciałbym pozbyć się duplikatów obiektów, ale zachować ich liczbę jako nowe pole 'count'.
czyli powyższa tablica po sprawdzeniu powinna wyglądać tak
array = [ { x: 1, y: 2, count:3 }, { x: 3, y: 4, count:2 }, { x: 3, y: 12, count:1 } ]
Znalazłem odpowiedź, ale w tym przypadku sprawdza obiekty, które które mają jedno pole.
const names = [{ _id: 1 }, { _id: 1}, { _id: 2}, { _id: 1}]
const result = [...names.reduce( (mp, o) => {
if (!mp.has(o._id)) mp.set(o._id, Object.assign({ count: 0 }, o));
mp.get(o._id).count++;
return mp;
}, new Map).values()];
console.log(result);
Jak zmodyfikować kod żebym otrzymał wspomniany wcześniej wynik?