Métodos de Set (union, intersection...)

O Set do JavaScript ganhou métodos nativos como union(), intersection() e difference(), trazendo operações clássicas de conjuntos sem precisar converter para array.

O objeto Set do JavaScript sempre foi útil para guardar valores únicos, mas faltavam operações básicas de conjuntos, como união e interseção. Agora o Set ganhou métodos nativos para isso, eliminando a necessidade de converter tudo para array e usar filter() manualmente.

O jeito antigo

const a = new Set([1, 2, 3]);
const b = new Set([2, 3, 4]);

// Interseção manual
const intersecao = new Set([...a].filter(x => b.has(x)));
console.log(intersecao); // Set(2) {2, 3}

Funciona, mas exige converter o Set para array, usar filter() e converter de volta — para cada operação diferente.

União

const a = new Set([1, 2, 3]);
const b = new Set([2, 3, 4]);

console.log(a.union(b)); // Set(4) {1, 2, 3, 4}

Interseção

console.log(a.intersection(b)); // Set(2) {2, 3}

Diferença

difference() retorna os itens que existem no primeiro Set, mas não no segundo:

console.log(a.difference(b)); // Set(1) {1}
console.log(b.difference(a)); // Set(1) {4}

Diferença simétrica

symmetricDifference() retorna os itens que existem em apenas um dos dois Sets:

console.log(a.symmetricDifference(b)); // Set(2) {1, 4}

Verificando relações entre conjuntos

Também é possível verificar se um Set é subconjunto, superconjunto ou disjunto de outro:

const pequeno = new Set([2, 3]);
const grande = new Set([1, 2, 3, 4]);

console.log(pequeno.isSubsetOf(grande)); // true
console.log(grande.isSupersetOf(pequeno)); // true
console.log(pequeno.isDisjointFrom(new Set([5, 6]))); // true

Quando usar

Compatibilidade

O suporte já é bom nos navegadores modernos, mas vale sempre conferir antes de usar em produção, principalmente se o projeto precisar suportar navegadores mais antigos.

caniuse

Conclusão

Os novos métodos de Set trazem operações clássicas de teoria dos conjuntos direto para o JavaScript nativo, deixando o código mais legível e eliminando conversões manuais entre Set e Array só para comparar coleções.

Tecnologia:
js

Deixe seu Comentário!

Comentário
Nome
Email