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".