DEV Community

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

Posted on • Edited on

3 1

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

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

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

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay