I have a situation where i need to find the duplicate element in array of object. Object contains 4 properties
{
id:"1",
userName:"userName",
name:"name1",
address:"address!"
}
My array of object looks like this.
[{
id:"1",
userName:"userName",
name:"name1",
address:"address!"
},{
id:"1",
userName:"userName",
name:"name2",
address:"address!"
},{
id:"2",
userName:"userName2",
name:"name3",
address:"address!"
},{
id:"3",
userName:"userName3",
name:"name4",
address:"address!"
},{
id:"4",
userName:"userName4",
name:"name5",
address:"address!"
}]
Rule for 2 object to be equal is id and userName should be equal for respective objects. That object should be marked as duplicate and removed only object should remain if there are duplicate object. In above array after removing the duplicate element result should be like this
[{
id:"1",
userName:"userName",
name:"name1",
address:"address!"
},{
id:"2",
userName:"userName2",
name:"name1",
address:"address!"
},{
id:"3",
userName:"userName3",
name:"name1",
address:"address!"
},{
id:"4",
userName:"userName4",
name:"name1",
address:"address!"
}]
if the input is like
[{
id:"1",
userName:"",
name:"name1",
address:"address!"
},{
id:"2",
userName:"",
name:"name1",
address:"address!"
},{
id:"3",
userName:"userName3",
name:"name1",
address:"address!"
},{
id:"3",
userName:"userName3",
name:"name1",
address:"address!"
}]
out put is like below
[{
id:"1",
userName:"",
name:"name1",
address:"address!"
},{
id:"2",
userName:"",
name:"name1",
address:"address!"
},{
id:"3",
userName:"userName3",
name:"name1",
address:"address!"
}]
Please suggest is there any easy method which can do this in typescript?
I tried
_.uniq(contacts, (user) => {
return user.id && user.userName;
});
This seems to be not working as expected.