JavaScript, como encontrar duplicados en una matriz

Cómo encontrar y eliminar duplicados en una matriz de JavaScript

Si desea eliminar los duplicados, existe una forma muy sencilla, haciendo uso de la estructura de datos Set proporcionada por JavaScript. Es una sola línea:

const yourArrayWithoutDuplicates = [...new Set(yourArray)]

Para encontrar qué elementos están duplicados, puede usar esta "matriz sin duplicados" que obtuvimos y eliminar cada elemento que contiene del contenido de la matriz original:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

const yourArrayWithoutDuplicates = […new Set(yourArray)]

let duplicates = […yourArray] yourArrayWithoutDuplicates.forEach((item) => { const i = duplicates.indexOf(item) duplicates = duplicates .slice(0, i) .concat(duplicates.slice(i + 1, duplicates.length)) })

console.log(duplicates) //[ 1, 5 ]

Otra solución es ordenar la matriz y luego verificar si el "siguiente elemento" es el mismo que el elemento actual, y ponerlo en una matriz:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

let duplicates = []

const tempArray = […yourArray].sort()

for (let i = 0; i < tempArray.length; i++) { if (tempArray[i + 1] === tempArray[i]) { duplicates.push(tempArray[i]) } }

console.log(duplicates) //[ 1, 5 ]

Tenga en cuenta que esto solo funciona para valores primitivos, no para objetos. En el caso de los objetos, necesita una forma de compararlos.


Más tutoriales de js: