Publicado em

Sets e Maps em JavaScript

Partilhar:

Introdução

JavaScript ES6 introduziu dois novos tipos de coleções de dados: Sets e Maps. Ambos oferecem formas eficientes e flexíveis de trabalhar com coleções de dados. Neste artigo, vamos explorar as características de Sets e Maps, entender suas diferenças e aplicações, e ver exemplos de como eles podem ser utilizados.

O que são Sets?

Um Set é uma coleção de valores que não permite duplicatas. É particularmente útil para a gestão de coleções de itens únicos.

Características dos Sets

  • Unicidade: Cada elemento em um Set é único.
  • Sem Indexação: Sets não são indexados como arrays. Não é possível acessar elementos por um índice.

Criando e Manipulando Sets

let meuSet = new Set();

// Adicionando elementos
meuSet.add(1);
meuSet.add(2);
meuSet.add(2); // Não tem efeito, pois 2 já está no set

// Verificando a presença de um elemento
console.log(meuSet.has(1)); // true

// Tamanho do Set
console.log(meuSet.size); // 2

// Removendo elementos
meuSet.delete(1);

Iterando sobre um Set

Sets podem ser iterados usando for...of ou métodos forEach.

for (let item of meuSet) {
  console.log(item);
}

O que são Maps?

Um Map é uma coleção de pares chave-valor. Ao contrário dos objetos, as chaves em um Map podem ser de qualquer tipo de dado.

Características dos Maps

  • Chaves Flexíveis: As chaves podem ser de qualquer tipo, incluindo funções, objetos e qualquer tipo primitivo.
  • Ordem Mantida: Diferente dos objetos, a ordem dos elementos é mantida.

Criando e Manipulando Maps

let meuMap = new Map();

// Definindo chaves e valores
meuMap.set('chave1', 'valor1');
meuMap.set('chave2', 'valor2');

// Acessando valores
console.log(meuMap.get('chave1')); // valor1

// Tamanho do Map
console.log(meuMap.size); // 2

// Removendo elementos
meuMap.delete('chave1');

Iterando sobre um Map

Podemos iterar sobre as chaves, valores ou ambos usando for...of ou forEach.

for (let [chave, valor] of meuMap) {
  console.log(`${chave}: ${valor}`);
}

Diferenças entre Sets e Maps

  • Uso: Sets são usados para coleções de valores únicos, enquanto Maps são usados para associar pares chave-valor.
  • Desempenho: Tanto Sets quanto Maps oferecem operações rápidas de inserção e pesquisa, superando frequentemente objetos em eficiência para grandes conjuntos de dados.

Boas Práticas e Dicas

  1. Escolha a Estrutura Correta: Use Sets quando precisar de uma coleção de itens únicos e Maps para mapeamentos chave-valor.
  2. Cuidado com as Chaves de Map: Lembre-se que Maps podem ter chaves de qualquer tipo. Mantenha um controle consistente sobre os tipos de chave para evitar confusão.
  3. Considere o Desempenho: Para grandes quantidades de dados, Sets e Maps podem ser mais eficientes que objetos ou arrays.

Conclusão

Sets e Maps são adições poderosas ao JavaScript, oferecendo formas eficientes e flexíveis de trabalhar com coleções de dados. Compreender suas características e diferenças é essencial para escolher a estrutura de dados correta para suas necessidades e para implementar soluções eficazes.

Happy coding!