Cómo eliminar objetos duplicados de una matriz en JavaScript

En este tutorial, aprenderemos cómo eliminar objetos duplicados de una matriz usando JavaScript.

Usamos es6 map y filter métodos para eliminar objetos duplicados de una matriz, donde la comparación de objetos se realiza utilizando la propiedad

Consideremos que tenemos una matriz de objetos con el id y name pero el mismo identificador se repite dos veces.

const arr = [
  { id: 1, name: "king" },
  { id: 2, name: "master" },
  { id: 3, name: "lisa" },
  { id: 4, name: "ion" },
  { id: 5, name: "jim" },
  { id: 6, name: "gowtham" },
  { id: 1, name: "jam" },
  { id: 1, name: "lol" },
  { id: 2, name: "kwick" },
  { id: 3, name: "april" },
  { id: 7, name: "sss" },
  { id: 8, name: "brace" },
  { id: 8, name: "peiter" },
  { id: 5, name: "hey" },
  { id: 6, name: "mkl" },
  { id: 9, name: "melast" },
  { id: 9, name: "imlast" },
  { id: 10, name: "glow" }
];

Aquí está mi implementación para eliminar objetos duplicados de una matriz.


function getUnique(arr, comp) {

                    
   const unique =  arr.map(e => e[comp])

                  
                  .map((e, i, final) => final.indexOf(e) === i && i)

                  
                 .filter((e) => arr[e]).map(e => arr[e]);

   return unique;
}

console.log(getUnique(arr,'id'));

En el código anterior estamos usando el patrón de encadenamiento donde la salida de un map el método será la entrada de otro map método.



tablero final con artículos únicos

Demostración de Codepen

Buena codificación...

Si quieres conocer otros artículos parecidos a Cómo eliminar objetos duplicados de una matriz en JavaScript puedes visitar la categoría Tutoriales.

Deja un comentario

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

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas