3 métodos para remover items duplicados array javascript

Javascript

Existem várias maneiras de remover itens duplicados de um array em JavaScript. Abaixo, vou descrever três métodos comuns:

  1. Usando o método 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]
  1. Usando um objeto como filtro

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]
  1. Usando o método 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

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Comments