Saltar para o conteúdo principal
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, compreender as suas diferenças e aplicações, e ver exemplos de como podem ser utilizados.

O que são Sets?

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

Características dos Sets

  • Unicidade: Cada elemento num Set é único.
  • Sem Indexação: Sets não são indexados como arrays. Não é possível aceder aos elementos através de um índice.

Criar e Manipular Sets

let meuSet = new Set();

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

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

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

// Remover elementos
meuSet.delete(1);

Iterar 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 num 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: Ao contrário dos objetos, a ordem dos elementos é mantida.

Criar e Manipular Maps

let meuMap = new Map();

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

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

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

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

Iterar 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 utilizados para coleções de valores únicos, enquanto Maps são utilizados para associar pares chave-valor.
  • Desempenho: Tanto Sets como 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: Utilize 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 de que Maps podem ter chaves de qualquer tipo. Mantenha um controlo 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 do 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 as suas características e diferenças é essencial para escolher a estrutura de dados correta para as suas necessidades e para implementar soluções eficazes.

Happy coding!