How to remove duplicate objects from an array in JavaScript
In this tutorial, we are going to learn about how to remove the duplicate objects from an array using JavaScript.
We are using es6 map
and filter
methods to remove the duplicate objects from an array, where object comparison is done by using the property
consider we have an array of objects with the id
and name
but the same id is repeating twice.
const arr = [
{ id: 1, name: "king" },
{ id: 2, name: "master" },
{ id: 3, name: "lisa" },
{ id: 4, name: "ion" },
{ id: 5, name: "jim" },
{ id: 6, name: "gowtham" },
{ id: 1, name: "jam" },
{ id: 1, name: "lol" },
{ id: 2, name: "kwick" },
{ id: 3, name: "april" },
{ id: 7, name: "sss" },
{ id: 8, name: "brace" },
{ id: 8, name: "peiter" },
{ id: 5, name: "hey" },
{ id: 6, name: "mkl" },
{ id: 9, name: "melast" },
{ id: 9, name: "imlast" },
{ id: 10, name: "glow" }
];
Here is my implementation to remove the duplicate objects from an array.
function getUnique(arr, comp) {
// store the comparison values in array
const unique = arr.map(e => e[comp])
// store the indexes of the unique objects
.map((e, i, final) => final.indexOf(e) === i && i)
// eliminate the false indexes & return unique objects
.filter((e) => arr[e]).map(e => arr[e]);
return unique;
}
console.log(getUnique(arr,'id'));
In the above code, we are using the chaining pattern where the output of a one map
method will be the input of a other map
method.
Codepen demo
Happy coding…