DEV Community

Cover image for Removendo repetições de um array com a classe Set
Gabriel Rufino
Gabriel Rufino

Posted on • Edited on

Removendo repetições de um array com a classe Set

Eu estava assistindo um curso na Udemy e descobri uma forma muito legal de eliminar eventuais repetições de elementos de um array.

Trata-se da combinação da classe Set com o Spread operator.

Set

Permite o armazenamento de valores únicos de qualquer tipo.

Exemplo de um set:

const set = new Set([1, 2, 3, 3, 4, 5, 5])
console.log(set) // Set {1, 2, 3, 4, 5}
Enter fullscreen mode Exit fullscreen mode

Clique aqui para conhecer mais da classe Set.

Spread operator

Servirá para fazer o espalhamento dos elementos do Set resultante.

Exemplo de como funciona spread operator:

const a = [1, 2, 3]
const b = [4, 5, 6]

const c = [...a, ...b]
console.log(c) // [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

Clique aqui para aprender mais sobre o Spread operator.

Combinando os dois

Agora, podemos combinar os dois e eliminar as repetições:

const initial = [1, 2, 2, 3, 4, 4, 8, 8]
const set = new Set(initial)
const final = [...set]

console.log(final) // [1, 2, 3, 4, 8]
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
igordepaula profile image
Igor C. de Paula

Desculpe a ignorancia, mas ele tambem remove objetos repetidos ou so tipos primitivos?

Collapse
 
gabrielrufino profile image
Gabriel Rufino

Remove apenas se os objetos tiverem a mesma referência:

Nesse caso remove:

const customer = { name: 'Gabriel' }

const result = [...new Set([customer, customer])]

Nesse caso não remove:

const result = [...new Set([{name: 'Gabriel'}, {name: 'Gabriel'}])]