AnyCompiler

Sets

Um Set é uma coleção com uma única regra que a define: todo valor nela é único. Adicione uma duplicata e nada acontece — ela já está lá.

let numbers = new Set([1, 2, 3, 2, 1]);
console.log(numbers);

numbers.add(4);
console.log(numbers);

console.log(numbers.has(2));
console.log(numbers.size);
Output
Set { 1, 2, 3 }
Set { 1, 2, 3, 4 }
true
4

new Set([1, 2, 3, 2, 1]) se reduz a apenas três valores únicos no momento em que é criado. has() verifica a presença, e size (não length) te dá a contagem.

Convertendo entre Set e array

Sets não têm métodos de array como map() ou filter() diretamente — converta com a sintaxe de espalhamento [...set] quando precisar deles.

let unique = [...new Set([1, 1, 2, 2, 3])];
console.log(unique);
Output
[ 1, 2, 3 ]

Isso é genuinamente útil, não uma curiosidade: remover duplicatas de um array é exatamente esse padrão — envolva-o em um Set para eliminar duplicatas, depois espalhe de volta em um array comum.

A seguir: declarações condicionais — fazer seu código realmente se ramificar com base em um valor.

Exercício de Prática

Crie numbers = new Set([1, 2, 2, 3, 3, 3]). Imprima numbers.size, e depois imprima se numbers tem o valor 2 usando numbers.has(2).