Delete an array of duplicate objects in javascript

Question:

How to remove duplicate data from an array of objects ?:

example:

var array = [
  {id:1,nombre:'casa'},
  {id:2,nombre:'fruta'},
  {id:3,nombre:'mascotas'},
  {id:1,nombre:'casa'},
  {id:2,nombre:'fruta'},
  {id:4,nombre:'cosas'},
  {id:5,nombre:'otros'}
];

Answer:

You could use Array.prototype.filter() ( IE9+ )

Example:

 var array = [ {id:1,nombre:'casa'}, {id:2,nombre:'fruta'}, {id:3,nombre:'mascotas'}, {id:1,nombre:'casa'}, {id:2,nombre:'fruta'}, {id:4,nombre:'cosas'}, {id:5,nombre:'otros'} ]; var hash = {}; array = array.filter(function(current) { var exists = !hash[current.id]; hash[current.id] = true; return exists; }); console.log(JSON.stringify(array));

Using ES6

 var array = [ {id:1,nombre:'casa'}, {id:2,nombre:'fruta'}, {id:3,nombre:'mascotas'}, {id:1,nombre:'casa'}, {id:2,nombre:'fruta'}, {id:4,nombre:'cosas'}, {id:5,nombre:'otros'} ]; let hash = {}; array = array.filter(o => hash[o.id] ? false : hash[o.id] = true); console.log(JSON.stringify(array));
Scroll to Top