Eliminar elementos repetidos en un array con JavaScript

Eliminar elementos repetidos en un array con JavaScript

Javascript

Existe varias formas para poder eliminar calores repetidos en arrays de JavaScript. Tanto la forma más básica como la más complicada pueden ser utilizadas para este fin.

Deberás tener en cuenta el tiempo y cual de ellas puede ser más óptima en cada escenario.

Bucle

La forma más rudimentaria. Recorrer el array y almacenar en un nuevo array los valores que no existan ya en este segundo array.

const data = [1, 2, 3, 4, 5, 2, 6, 7, 3, 8];
var unique = [];
data.forEach(function (item) {
	if(!unique.includes(item)){
		unique.push(item);
	}
});
console.log(unique); // Array(8) [ 1, 2, 3, 4, 5, 6, 7, 8 ]

new Set

Los objetos Set son colecciones de valores. Puede iterar a través de los elementos de un conjunto en orden de inserción. Un valor en un Set solo puede ocurrir una vez; es único en la colección del Set.

const data = [1, 2, 3, 4, 5, 2, 6, 7, 3, 8];
const unique = [... new Set(data)];
console.log(unique); // Array(8) [ 1, 2, 3, 4, 5, 6, 7, 8 ]

.filter

El método filter crea un nuevo array con todos los elementos que cumplan la condición implementada por la función dada.

const data = [1, 2, 3, 4, 5, 2, 6, 7, 3, 8];
const unique = data.filter((item, index) => (data.indexOf(item) === index));
console.log(unique); // Array(8) [ 1, 2, 3, 4, 5, 6, 7, 8 ]

.reduce

El valor devuelto de la función reductora se asigna al acumulador, cuyo valor se recuerda en cada iteración de la matriz y, en última instancia, se convierte en el valor final, único y resultante. Más información sobre la función reduce.

const data = [1, 2, 3, 4, 5, 2, 6, 7, 3, 8];
const unique = data.reduce((partial, item) => (partial.includes(item) ? partial : [...partial, item]), []);
console.log(unique); // Array(8) [ 1, 2, 3, 4, 5, 6, 7, 8 ]

Leave a reply