Sometimes, we want to get a list of duplicate objects in an array of objects with JavaScript.
In this article, we’ll look at how to get a list of duplicate objects in an array of objects with JavaScript.
How to get a list of duplicate objects in an array of objects with JavaScript?
To get a list of duplicate objects in an array of objects with JavaScript, we can use the JavaScript array’s reduce method.
For instance, we write:
const values = [{
  id: 10,
  name: 'someName1'
}, {
  id: 10,
  name: 'someName2'
}, {
  id: 11,
  name: 'someName3'
}, {
  id: 12,
  name: 'someName4'
}];
const lookup = values.reduce((a, e) => {
  if (a[e.id]) {
    return {
      ...a,
      [e.id]: a[e.id] + 1
    }
  }
  return {
    ...a,
    [e.id]: 1
  }
}, {});
const dups = values.filter(e => lookup[e.id] > 1)
console.log(dups);
We call values.reduce with a callback that returns an object with the counts of the object give in values given the value of e.id.
If a[e.id] is defined, then we increment it by 1.
Otherwise, we set [e.id] to 1.
Then we get the id‘s of the objects in values with value bigger than 1.
As a result, dups is:
[
  {
    "id": 10,
    "name": "someName1"
  },
  {
    "id": 10,
    "name": "someName2"
  }
]
Conclusion
To get a list of duplicate objects in an array of objects with JavaScript, we can use the JavaScript array’s reduce method.
