I receive an array of complex objects from the server. I would like to filter the original array to get a new array with unique objects by a sub-property of an each object, i.e :
let arr1 = originalArray;
let arr2 = originalArray.filter((ele, idx, arr) => ....
Now for example, arr1 consists of 3 objects:
firstObj = {
id: 0,
Details:
{
License: 123456
},
name: 'abc'
};
secondObj = {
id: 1,
Details:
{
License: 131313
},
name: 'xcd'
};
thirdObj = {
id: 2,
Details:
{
License: 123456
},
name: 'bcd'
};
So, I want to filter the array so that the newly returned array will consist of only two objects where the 'License' property will be unique, that is, one of the objects with the same 'License' will be removed. Thanks.
To remove the duplicates from an array of objects:Use the Array. filter() method to filter the array of objects. Only include objects with unique IDs in the new array.
To remove duplicates from an array: First, convert an array of duplicates to a Set . The new Set will implicitly remove duplicate elements. Then, convert the set back to an array.
You can use array.reduce
to loop through source array and add items to result if it does not contain same Details.License
let result = [firstObj, secondObj, thirdObj].reduce((arr, item) => {
let exists = !!arr.find(x => x.Details.License === item.Details.License);
if(!exists){
arr.push(item);
}
return arr;
}, []);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With