A quick and easy way to remove duplicate Objects within an Array of Objects by key.
function removeDuplicateObjectsByKey(array, fieldToDuplicateCheck) {
const newArray = []
const arrayKeys = []
array.forEach((item) => {
// check if we don't already have the value within the arrayKeys array
if (!arrayKeys.includes(item[fieldToDuplicateCheck])) {
// push this value to the arrayKeys array
arrayKeys.push(item[fieldToDuplicateCheck])
// push this object to the newArray array
newArray.push(item)
}
})
// return the newArray with the filtered out duplicate objects
return newArray
}
// A test array of objects. In a real world situation you would have more than just the 'name' key on the objects
const initialArrayOfObjects = [
{
name: '🐑',
},
{
name: '🐑',
},
{
name: '🐫',
},
{
name: '🦕',
},
{
name: '🦕',
},
]
// will filter out the duplicates by the 'name' field
let removeDuplicateObjects = removeDuplicateObjectsByKey(initialArrayOfObjects, 'name')
// [ { name: '🐑' }, { name: '🐫' }, { name: '🦕' } ]
Cover Photo Credits to Charl Folscher
Top comments (0)