i am working on a node js project in there i have to add some elements in a array object. i had figure out one way , it has a problem. it can't work with duplicate name's.
hare is the code
let arrayObject = [
{ name: "l2k", killPoint: 10 },
{ name: "l2kb", killPoint: 6 },
{ name: "gd", killPoint: 0 },
{ name: "l2kb", killPoint: 5 },
{ name: "gd", killPoint: 0 },
{ name: "l2k", killPoint: 4 },
{ name: "gd", killPoint: 0 },
{ name: "l2k", killPoint: 1 },
];
//conver ter using
let winCount = [1, 0, 0, 0, 0, 0];
let pointsystem = [12, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0];
const positionAdd = (objects) => {
const posRes = {};
let i = 0;
objects.forEach(({ name, killPoint }) => {
posRes[name] = posRes[name] || {
name,
win: 0,
positionPoint: 0,
killPoint: 0,
};
posRes[name].win = winCount[i] || 0;
posRes[name].positionPoint = pointsystem[i] || 0;
posRes[name].killPoint = killPoint;
i += 1;
});
return Object.values(posRes);
};
console.log(positionAdd(arrayObject));
output getting
[
{ name: 'l2k', win: 0, positionPoint: 3, killPoint: 1 },
{ name: 'l2kb', win: 0, positionPoint: 7, killPoint: 5 },
{ name: 'gd', win: 0, positionPoint: 4, killPoint: 0 }
]
output expected
[
{ name: "l2k", win: 1, positionPoint: 12, killPoint: 10 },
{ name: "l2kb", win: 0, positionPoint: 9, killPoint: 6 },
{ name: "gd", win: 0, positionPoint: 8, killPoint: 0 },
{ name: "l2kb", win: 0, positionPoint: 7, killPoint: 5 },
{ name: "gd", win: 0, positionPoint: 6, killPoint: 0 },
{ name: "l2k", win: 0, positionPoint: 5, killPoint: 4 },
{ name: "gd", win: 0, positionPoint: 4, killPoint: 0 },
{ name: "l2k", win: 0, positionPoint: 3, killPoint: 1 },
]