Domine Sets em JavaScript ES6: Guia Completo com Exemplos

Foto do autor

By luis

Explorando Conjuntos em JavaScript (ES6)

Os conjuntos representam uma adição valiosa ao JavaScript, introduzida no ES6. Este artigo tem como objetivo desmistificar o conceito de conjuntos, demonstrando seu uso prático e explorando os métodos que disponibilizam para a resolução de problemas.

O que são Conjuntos?

Um conjunto, como o próprio nome sugere, é uma coleção de elementos que são únicos. Ou seja, ele não permite a inclusão de valores repetidos. Em JavaScript, os conjuntos mantêm a ordem de inserção dos elementos, o que os torna coleções ordenadas. Eles podem armazenar tipos de dados primitivos ou objetos.

A seguir, demonstraremos a sintaxe para criar conjuntos em JavaScript. É recomendável que você utilize um ambiente de desenvolvimento (IDE) para acompanhar os exemplos.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);
console.log(nomes);

const palavraAleatoria = new Set("Aaaaaabc");
console.log(palavraAleatoria);

const numeros = new Set([10, 10, 5, 2, 1, 1, 2, 3]);
console.log(numeros);

Propriedades e Métodos

Os conjuntos oferecem uma variedade de propriedades e métodos que simplificam o trabalho com essa estrutura de dados. A nomenclatura dos métodos é intuitiva, facilitando sua compreensão. Abaixo, detalhamos cada um deles:

Tamanho

A propriedade `size` retorna a quantidade de elementos presentes no conjunto.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);
console.log(`Tamanho: ${nomes.size}`);

Adicionar

O método `add` é utilizado para inserir um novo elemento ao conjunto. Se o elemento já existir, ele não será adicionado novamente.

const nomes = new Set();

nomes.add("João");
nomes.add("Maria");
nomes.add("Carlos");
nomes.add("Ana");
nomes.add("Maria");

console.log(nomes);

Verificar Existência

O método `has` recebe um argumento e retorna `true` se o elemento estiver presente no conjunto, e `false` caso contrário.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

console.log(nomes.has("Maria"));
console.log(nomes.has("Pedro"));

Remover

O método `delete` recebe um argumento e remove o elemento do conjunto. Se o elemento não existir, nenhuma ação será executada e nenhum erro será gerado.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

nomes.delete("João");

console.log(nomes);

Entradas

O método `entries` retorna um iterador contendo arrays de pares chave-valor na ordem de inserção. Neste caso, a chave e o valor são idênticos.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

const entradas = nomes.entries();

console.log(entradas.next().value);
console.log(entradas.next().value);
console.log(entradas.next().value);
console.log(entradas.next().value);
console.log(entradas.next().value);

Chaves

O método `keys` retorna um iterador com os elementos do conjunto, na ordem em que foram inseridos.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

const chaves = nomes.keys();

console.log(chaves.next().value);
console.log(chaves.next().value);
console.log(chaves.next().value);
console.log(chaves.next().value);
console.log(chaves.next().value);

Valores

O método `values` retorna um iterador com os valores do conjunto, na ordem de inserção, similar ao método `keys`.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

const valores = nomes.values();

console.log(valores.next().value);
console.log(valores.next().value);
console.log(valores.next().value);
console.log(valores.next().value);
console.log(valores.next().value);

Limpar

O método `clear` remove todos os elementos do conjunto, deixando-o vazio.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

nomes.clear();

console.log(nomes);

Iterar com ForEach

O método `forEach` permite iterar sobre todos os elementos do conjunto, executando uma função para cada um deles.

const nomes = new Set(["João", "Maria", "Carlos", "Ana", "Maria"]);

nomes.forEach((elemento) => {
   console.log(elemento);
});

Aplicação Prática

Vamos observar um exemplo de uso de conjuntos em um cenário prático. Dado um array, nosso objetivo é remover todos os valores duplicados. Para isso, podemos utilizar as propriedades únicas de um conjunto.

O processo de resolução envolve os seguintes passos:

  • Inicializar um array com dados de exemplo.
  • Criar um conjunto vazio.
  • Percorrer cada elemento do array:
    • Adicionar cada elemento ao conjunto (elementos duplicados serão automaticamente ignorados).
  • Criar um novo array vazio.
  • Percorrer o conjunto e adicionar cada elemento ao novo array.
  • Exibir o novo array, contendo apenas elementos únicos.

A implementação deste processo é apresentada abaixo:

const arr = ["João", "Maria", "Carlos", "Ana", "Maria"];

const temp = new Set();

arr.forEach((elemento) => {
   temp.add(elemento);
});

const novoArr = [];

temp.forEach((elemento) => {
   novoArr.push(elemento);
});

console.log(novoArr);

Conclusão

Este artigo forneceu uma visão abrangente sobre o uso de conjuntos em JavaScript. Agora você possui o conhecimento necessário para incorporá-los em seus projetos. Utilize este recurso e explore todas as suas possibilidades.

Bons estudos! 🚀