Eliminar objetos duplicados en un array javascript

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:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

¿Eres programador/a?

En Pulpo están buscando nuevos talentos, envíales un email a developers@pulpoapp.com.

2 Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*