Remove duplicates from an Array of Objects based on property
Here is a useful code snippet that allows you to pass in an array of objects, and then filter out the objects that have duplicate key values. Imagine you have a list of articles that you have merged from multiple sources and want to remove the duplicates based on id.
const articlesList = [
{
id: 3,
title: "Interesting Stuff",
content: "..."
},
{
id: 45,
title: "Even more interesting",
content: "..."
},
{
id: 3,
title: "Interesting Stuff",
content: "..."
}
]
The snippet looks something like this:
function removeDuplicates(myArr, prop) {
return myArr.filter((obj, pos, arr) => {
return arr.map(mapObj => mapObj[prop]).indexOf(obj[prop]) === pos;
});
}
removeDuplicates(articlesList, 'id');