Há 20 anos oferecendo as melhores soluções!

O que é JavaScript Set

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.