Cómo eliminar duplicados de una matriz en JavaScript [Ejemplos]

Ser capaz de eliminar duplicados de (o desduplicar) una matriz es algo útil para poder hacer. Así es como se hace.

¿Qué es una matriz?

En programación, una matriz es un tipo de variable que puede contener otros valores, o referencias a otras variables, en una lista en una posición determinada.

Los arreglos son vitales para construir cualquier aplicación, lo que le permite almacenar una lista de variables o valores de cualquier longitud en una sola variable, lista para ser iterada, procesada o mostrada.

Por ejemplo, una matriz puede contener una lista de asistentes a un evento que se puede administrar agregando o eliminando registros, o puede contener una lista de objetivos que se mostrarán en pantalla en un videojuego, listos para eliminarse de la matriz. a medida que se completan.

Las matrices forman la columna vertebral de casi todos los programas que puede escribir en PHP o cualquier otro lenguaje de programación.

Puede verificar si una variable es una matriz en Javascript usando el método Array.inArray().

Usando el conjunto de Javascript para eliminar matrices duplicadas

Un conjunto es un tipo de variable que almacena una lista o colección de valores, todos los cuales deben ser único .

Por lo tanto, al crear un conjunto a partir de una matriz determinada y luego volver a convertirla en una matriz, solo se conservan los valores únicos, lo que elimina la duplicación efectiva de la matriz.

Esta es la mejor manera de eliminar duplicados de una matriz:es una línea corta de código que es discreta y tiene un propósito claro. Aquí está:

var arrayWithDuplicates = [1, 2, 1 ,3 ,4];
var arrayWithoutDuplicates = [...new Set(arrayWithDuplicates)];

Arriba, una matriz llamada arrayWithDuplicates se define. Luego se define una segunda matriz, arrayWithoutDuplicates , que contendrá una copia desduplicada de arrayWithDuplicates .

¿Cómo funciona esto? En la segunda línea, se crea una matriz (el conjunto más externo de corchetes ), que contiene los valores de un nuevo Conjunto construido utilizando los valores de la matriz que contiene duplicados. El nuevo conjunto lee la matriz original y crea un conjunto con solo los valores únicos de él, y luego se crea una matriz a partir de ese conjunto.

Para obtener más información sobre los conjuntos y la clase de conjunto, consulte los documentos para desarrolladores de Mozilla aquí.

Usando  filtro para deduplicar

El conjunto class es una adición relativamente reciente a JavaScript y es ampliamente compatible, sin embargo; hay otras formas de eliminar valores duplicados de una matriz.

La clase de matriz en JavaScript también tiene el filtro método. El filtro El método verifica cada valor en la matriz contra una condición y lo elimina si esa condición falla. Por lo tanto, se puede usar fácilmente para verificar cada valor en una matriz y eliminarlo si ya existe en otra parte de la matriz:

var arrayWithDuplicates = [1, 2, 1 ,3 ,4];
var arrayWithoutDuplicates = arrayWithDuplicates.filter(function(item, index, self) {
    return self.indexOf(item) == index;
});

Arriba, el filtro se llama al método en arrayWithDuplicates . La función que filtra los valores en la matriz devolverá VERDADERO solo si el índice del elemento actual es igual a la iteración actual, es decir, si se encuentra un valor con el mismo valor que el elemento actual que se está verificando y no tiene el mismo índice, será eliminado.

Es menos eficiente que usar un conjunto, pero es un método válido para eliminar duplicados.