Collections
De forma geral, o comum dentro das collections do JavaScript usamos objects e arrays:
Arrays:
let cards = ["card1", "card2"];Objects:
let user = {name: "Vampeta"};
Exemplo:
Armazenando dados pela chave com Object
Assim conseguimos pegar a chave do objeto sem saber qual ela é exatamente e acessar o valor da propriedade do objeto pela chave e assim armazenar deste modo:
Armazenando dados por um Map
Alguns métodos importantes:
Método | Função | Exemplo |
|---|---|---|
| Armazena um valor com a chave especificada. |
|
| Recupera o valor armazenado com a chave especificada. |
|
| Retorna um iterador para as chaves no Map. |
|
| Retorna um iterador para os valores no Map. |
|
| Retorna um iterador para os pares chave/valor como arrays. |
|
Vantagens do Map
Não contem nenhuma chave por padrão, só tem o que foi definido
As chaves podem ser qualquer valor, de qualquer tipo, desde built in como objetos complexos
As cheaves dentro do map são ordenados de forma simples, o objeto Map itera suas entradas chaves e valor na ordem em que foram inseridas
Podemos pegar o número de items dentro do Map com a propriedade
sizeDiretamente iterável
Funciona melhor em cenarios em que precisamos armazenar e remover por chave-valor
Não tem suporte para serialização ou analise sintática, mas pode ser implementado: veja mais na discussion do StackOverflow
Usando Symbols para chaves do Map
A principal vantagem de usar um Map é que qualquer valor pode ser uma chave (key), incluindo Symbol
Cada valor de um Symbol é único e imutavel e idealmente escolhido para um identificador de objetos
O benefício de usar Symbol this.id = Symbol(); é que não é possivel termos duas keys com valores iguais, ou seja, não teremos uma colisão de dados
Armazenando dados pelo index
Um dos tipos de listas que JavaScript provê é o Set, que armazenar dados pelop indice mas tem performance otimizada e mais útil, armazenando somente valores únicos:
Como a saída será em que o Set size: 1 justamente porque ele gera a integridade e consistência dos dados eliminando duplicatas, diferente de arrays que a saída será Array length: 5 já que ele permite duplicatas
Alguns métodos uteis:
Método | Função | Exemplo |
|---|---|---|
| Adiciona um valor ao Set. |
|
| Retorna um iterador com os itens do Set como pares [valor, valor]. |
|
| Retorna |
|
| Executa uma função para cada valor no Set. |
|