How to remove duplicates from an array of objects in Javascript

To remove duplicates from an array of objects based on a key in the array, you can do this:

const arr = [
  {
    id: 'abc123',
    hello: 'world',
  },
  {
    id: 'abc123',
    hello: 'world',
  }
];

const duplicatesRemoved = [...new Map(arr.map(item => [item.id, item])).values()];

Using a Map is 2x faster than using an Object. You should replace item.id with the key you want to use.

In function form:

function removeDuplicates(arr = [], key = null) {
  return [...new Map(arr.map(item => [item[key], item])).values()];
}

If you pass an invalid key, your array will be 1 in length, since the Map will use undefined as the key.