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! 🚀