loading...
Cover image for Removendo repetições de um array com a classe Set

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

gabrielrufino profile image Gabriel Rufino Updated on ・1 min read

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}

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]

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]

Posted on by:

gabrielrufino profile

Gabriel Rufino

@gabrielrufino

Fullstack Developer around JavaScript stack. Solving problems, generating value!

Discussion

markdown guide
 

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

 

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'}])]