O que é JavaScript Set?
JavaScript Set é uma estrutura de dados introduzida no ECMAScript 6 (também conhecido como ES6 ou ES2015) que permite armazenar valores únicos de qualquer tipo. É semelhante a um array, mas com a diferença de que não permite a existência de elementos duplicados. Isso significa que, ao adicionar um valor ao Set, o JavaScript verifica se o valor já está presente e, se estiver, ele é ignorado. Essa característica torna o JavaScript Set uma ferramenta poderosa para lidar com coleções de dados exclusivos.
Como criar um JavaScript Set?
Para criar um JavaScript Set, basta usar a palavra-chave “new” seguida de “Set()”. Por exemplo:
let set = new Set();
Isso criará um novo Set vazio. Você também pode inicializar um Set com valores iniciais passando um array como argumento para o construtor Set. Por exemplo:
let set = new Set([1, 2, 3]);
Isso criará um Set com os valores 1, 2 e 3.
Adicionando e removendo elementos de um JavaScript Set
Para adicionar um elemento a um JavaScript Set, você pode usar o método “add()”. Por exemplo:
set.add(4);
Isso adicionará o valor 4 ao Set. Se o valor já estiver presente, ele será ignorado. Para remover um elemento de um Set, você pode usar o método “delete()”. Por exemplo:
set.delete(3);
Isso removerá o valor 3 do Set, se estiver presente. Além disso, você também pode verificar se um valor está presente em um Set usando o método “has()”. Por exemplo:
set.has(2); // retorna true set.has(5); // retorna false
Iterando sobre um JavaScript Set
Uma das vantagens do JavaScript Set é a capacidade de iterar sobre seus elementos de forma fácil e eficiente. Existem várias maneiras de fazer isso. Uma delas é usando o loop “for…of”. Por exemplo:
for (let item of set) { console.log(item); }
Isso imprimirá cada elemento do Set no console. Outra maneira de iterar sobre um Set é usando o método “forEach()”. Por exemplo:
set.forEach(function(item) { console.log(item); });
Isso também imprimirá cada elemento do Set no console.
Tamanho de um JavaScript Set
Você pode obter o tamanho de um JavaScript Set usando a propriedade “size”. Por exemplo:
console.log(set.size);
Isso imprimirá o número de elementos presentes no Set.
Verificando se um JavaScript Set está vazio
Para verificar se um JavaScript Set está vazio, você pode usar a propriedade “size”. Se o tamanho for igual a 0, significa que o Set está vazio. Por exemplo:
if (set.size === 0) { console.log("O Set está vazio"); } else { console.log("O Set não está vazio"); }
Convertendo um JavaScript Set em um array
Se você precisar converter um JavaScript Set em um array, pode usar o operador de propagação (“…”) junto com o construtor Array. Por exemplo:
let array = [...set];
Isso criará um novo array contendo os elementos do Set.
Operações de conjunto com JavaScript Set
O JavaScript Set também oferece métodos para realizar operações de conjunto, como união, interseção e diferença. Para realizar a união de dois Sets, você pode usar o método “union()”. Por exemplo:
let set1 = new Set([1, 2, 3]); let set2 = new Set([3, 4, 5]); let unionSet = new Set([...set1, ...set2]);
Isso criará um novo Set contendo os elementos de ambos os Sets, sem duplicatas. Para realizar a interseção de dois Sets, você pode usar o método “intersection()”. Por exemplo:
let intersectionSet = new Set([...set1].filter(x => set2.has(x)));
Isso criará um novo Set contendo apenas os elementos que estão presentes em ambos os Sets. Para realizar a diferença de dois Sets, você pode usar o método “difference()”. Por exemplo:
let differenceSet = new Set([...set1].filter(x => !set2.has(x)));
Isso criará um novo Set contendo apenas os elementos que estão presentes no primeiro Set, mas não no segundo Set.
Limitações do JavaScript Set
Embora o JavaScript Set seja uma estrutura de dados poderosa, ele também possui algumas limitações. Uma delas é que os elementos em um Set são comparados usando o algoritmo de igualdade estrita (===). Isso significa que, por exemplo, um Set não pode conter objetos com as mesmas propriedades, mas referências diferentes. Além disso, um Set não mantém a ordem dos elementos inseridos. Se você precisar de uma estrutura de dados que mantenha a ordem dos elementos, pode usar o JavaScript Map.
Conclusão
Em resumo, o JavaScript Set é uma estrutura de dados poderosa para armazenar valores exclusivos. Ele oferece métodos simples para adicionar, remover e verificar a presença de elementos, além de permitir operações de conjunto. No entanto, é importante estar ciente das limitações do Set, como a comparação estrita de elementos e a falta de ordenação. Com o conhecimento adequado do JavaScript Set, você pode aproveitar ao máximo essa ferramenta em seus projetos de desenvolvimento web.