Existem várias maneiras de remover itens duplicados de um array em JavaScript. Abaixo, vou descrever três métodos comuns:
filter()
e indexOf()
Uma maneira de remover itens duplicados de um array é usando o método filter()
em conjunto com o método indexOf()
para filtrar os elementos que não são duplicados. O método indexOf()
retorna o primeiro índice em que um elemento pode ser encontrado no array, e se esse índice não for igual ao índice atual no loop do filter()
, então o elemento é um duplicado e não deve ser incluído no novo array.
const array = [3, 5, 5, 7, 9, 9, 1, 9, 2, 5, 7, 9, 2, 42, 12, 56, 87, 34, 23, 34];
const arraySemDuplicados = array.filter((valor, indice, self) => {
return self.indexOf(valor) === indice;
});
console.log(arraySemDuplicados);
O código acima vai imprimir o seguinte resultado no console:
[3, 5, 7, 9, 1, 2, 42, 12, 56, 87, 34, 23]
Outra maneira de remover itens duplicados de um array é usando um objeto como filtro. Nessa abordagem, um objeto é criado para armazenar as chaves únicas dos elementos do array e, em seguida, essas chaves são usadas para criar um novo array.
const array = [3, 5, 5, 7, 9, 9, 1, 9, 2, 5, 7, 9, 2, 42, 12, 56, 87, 34, 23, 34];
const objetoFiltro = {};
const arraySemDuplicados = array.filter((valor) => {
return objetoFiltro.hasOwnProperty(valor) ? false : (objetoFiltro[valor] = true);
});
console.log(arraySemDuplicados);
O código acima também vai imprimir o seguinte resultado no console:
[3, 5, 7, 9, 1, 2, 42, 12, 56, 87, 34, 23]
Set()
A partir do ES6, o JavaScript introduziu o objeto Set()
, que permite armazenar valores únicos de qualquer tipo, incluindo elementos de um array. Com o Set()
, podemos facilmente remover itens duplicados de um array.
const array = [3, 5, 5, 7, 9, 9, 1, 9, 2, 5, 7, 9, 2, 42, 12, 56, 87, 34, 23, 34];
const set = new Set(array);
const arraySemDuplicados = Array.from(set);
console.log(arraySemDuplicados);
O código acima vai imprimir o seguinte resultado no console:
[3, 5, 7, 9, 1, 2, 42, 12, 56, 87, 34, 23]
Deixe um comentário