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));