I have a array like this:
[
{
id: 12,
selected: true
},
{
id: 12,
selected: true
}
]
I want only remove one of the same ID, but filter remove all, how can I only remove one object?
I have a array like this:
[
{
id: 12,
selected: true
},
{
id: 12,
selected: true
}
]
I want only remove one of the same ID, but filter remove all, how can I only remove one object?
To remove one object out of all duplicates you could use this:
let objectIds = {};
[
{
id: 12,
selected: true
},
,
{
id: 14,
selected: true
},
{
id: 12,
selected: true
},
{
id: 12,
selected: true
},
{
id: 14,
selected: true
}
].filter((obj) => {
const oid = objectIds[obj.id];
if ( oid ) {
oid.nr += 1;
} else {
return objectIds[obj.id] = {nr: 1};
}
if (oid.nr > 1 && !oid.removed) {
oid.removed = true;
return false;
}
return true;
});