Revisão de Maps e Sets do JavaScript

Conjuntos em JavaScript

  • Um Set é uma opção embutida para gerenciar coleções de dados.
  • Conjuntos garantem que cada valor nele apareça apenas uma vez, tornando-os úteis para eliminar duplicatas de um array ou para lidar com coleções de valores distintos.
  • Você pode criar um Set usando o construtor Set():
const set = new Set([1, 2, 3, 4, 5]);
console.log(set); // Set { 1, 2, 3, 4, 5 }
  • Conjuntos podem ser manipulados usando esses métodos:
  • add(): Adiciona um novo elemento ao Set.
  • delete(): Remove um elemento do Set.
  • has(): Verifica se um elemento existe no Set.
  • clear(): Remove todos os elementos do Set.
  • keys() e values(): Ambos retornam um SetIterator que contém os valores do Set. Eles são iguais porque keys() é um alias para values().
  • forEach(): para iterar sobre os valores do Set.

Weaksets em JavaScript

  • WeakSet é uma coleção de objetos que permite armazenar objetos mantidos de forma fraca.

Conjuntos vs WeakSets

  • Ao contrário dos Sets, um WeakSet não suporta tipos primitivos como números ou strings.
  • Um WeakSet armazena apenas objetos e as referências a esses objetos são "fracas", o que significa que, se o objeto não estiver sendo usado em nenhum outro lugar do seu código, ele é removido automaticamente para liberar memória.

Mapas em JavaScript

  • Um Map é um objeto embutido que armazena pares chave-valor assim como um objeto.
  • Maps diferem dos objetos padrão do JavaScript pela sua capacidade de permitir chaves de qualquer tipo, incluindo objetos e funções.
  • Um Map oferece melhor desempenho em relação ao objeto padrão quando se trata de adições e remoções frequentes de pares chave-valor.
  • Você pode criar um Map usando o construtor Map():
const map = new Map([
  ['flower', 'rose'],
  ['fruit', 'apple'],
  ['vegetable', 'carrot']
]);
console.log(map); // Map(3) { 'flower' => 'rose', 'fruit' => 'apple', 'vegetable' => 'carrot' }
  • Mapas podem ser manipulados usando esses métodos:
  • set(): Adiciona um novo par chave-valor ao Map.
  • get(): Recupera o valor de uma chave do Map.
  • delete(): Remove um par chave-valor do Map.
  • has(): Verifica se uma chave existe no Map.
  • clear(): Remove todos os pares chave-valor do Map.
Observe que tanto Maps quanto Sets possuem a propriedade size que retorna o número de elementos únicos neles.

WeakMaps em JavaScript

  • Um WeakMap é uma coleção de pares chave-valor assim como Map, mas com referências fracas para as chaves. As chaves devem ser um objeto e os valores podem ser qualquer coisa que você quiser.

Mapas vs WeakMaps

  • WeakMaps são semelhantes a WeakSets no sentido de que eles armazenam apenas objetos e as referências a esses objetos são "fracas".