Si queremos eliminar los Objetos duplicados de un Array Javascript podemos usar la siguiente función:
function eliminarObjetosDuplicados(arr, prop) { var nuevoArray = []; var lookup = {}; for (var i in arr) { lookup[arr[i][prop]] = arr[i]; } for (i in lookup) { nuevoArray.push(lookup[i]); } return nuevoArray; }
Teniendo este Array con el Objeto con firstName «Janis» duplicado:
var arrayConObjetos = [ { "_id": "591e9b18e1891674fb29475d", "firstName": "Raymond", "lastName": "Faulkner" }, { "_id": "591e9b18ff8530cea0a259ad", "firstName": "Janis", "lastName": "Ayers" }, { "_id": "591e9b1821b17b49ac4061de", "firstName": "Consuelo", "lastName": "Hicks" }, { "_id": "591e9b18ff8530cea0a259ad", "firstName": "Janis", "lastName": "Ayers" } ];
Podríamos aplicar la función de la siguiente manera:
// Le podemos pasar cualquiera de los campos, ya que el objeto entero está duplicado. arrayConObjetos = eliminarObjetosDuplicados(arrayConObjetos, '_id');
Con lo que nos quedaría el array de objetos:
var arrayConObjetos = [ { "_id": "591e9b18e1891674fb29475d", "firstName": "Raymond", "lastName": "Faulkner" }, { "_id": "591e9b18ff8530cea0a259ad", "firstName": "Janis", "lastName": "Ayers" }, { "_id": "591e9b1821b17b49ac4061de", "firstName": "Consuelo", "lastName": "Hicks" } ];
Aquí tenemos el Fiddle para toquetear cositas:
Besitos en el yoyopo, la araña aplastada, el sin orillas, el oscuro, el casi nies . Me acaban de salvar . Los amo!
xDDD