Mapas JavaScript
Um Map contém pares de chave-valor em que as chaves podem ser de qualquer tipo de dados.
Um mapa lembra a ordem de inserção original das chaves.
Um Mapa tem uma propriedade que representa o tamanho do mapa.
Métodos de mapa
Método | Descrição |
---|---|
novo Mapa() | Cria um novo objeto Map |
definir() | Define o valor de uma chave em um mapa |
pegue() | Obtém o valor de uma chave em um mapa |
Claro() | Remove todos os elementos de um mapa |
excluir() | Remove um elemento Map especificado por uma chave |
tem() | Retorna verdadeiro se existir uma chave em um mapa |
para cada() | Invoca um retorno de chamada para cada par de chave/valor em um mapa |
entradas() | Retorna um objeto iterador com os pares [chave, valor] em um mapa |
chaves() | Retorna um objeto iterador com as chaves em um mapa |
valores() | Retorna um objeto iterador dos valores em um mapa |
Propriedade | Descrição |
---|---|
Tamanho | Retorna o número de elementos Map |
Como criar um mapa
Você pode criar um mapa JavaScript por:
- Passando um array para
new Map()
- Crie um mapa e use
Map.set()
novo Mapa()
Você pode criar um Map passando um Array para o new Map()
construtor:
Exemplo
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Map.set()
Você pode adicionar elementos a um Map com o set()
método:
Exemplo
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
O set()
método também pode ser usado para alterar os valores de Mapa existentes:
Exemplo
fruits.set("apples", 500);
Map.get()
O get()
método obtém o valor de uma chave em um Map:
Exemplo
fruits.get("apples"); // Returns 500
Tamanho do mapa
A size
propriedade retorna o número de elementos em um Map:
Exemplo
fruits.size;
Map.delete()
O delete()
método remove um elemento Map:
Exemplo
fruits.delete("apples");
Map.clear()
O clear()
método remove todos os elementos de um Map:
Exemplo
fruits.clear();
Map.has()
O has()
método retorna true se existir uma chave em um Map:
Exemplo
fruits.has("apples");
Tente isto:
fruits.delete("apples");
fruits.has("apples");
Mapas são objetos
typeof
retorna objeto:
Exemplo
// Returns object:
typeof fruits;
instanceof
O mapa retorna verdadeiro:
Exemplo
// Returns true:
fruits instanceof Map;
Objetos JavaScript vs Mapas
Diferenças entre objetos JavaScript e mapas:
Objeto | Mapa | |
---|---|---|
Iterável | Não diretamente iterável | Diretamente iterável |
Tamanho | Não tem uma propriedade de tamanho | Tenha uma propriedade de tamanho |
Tipos de chave | As chaves devem ser Strings (ou Símbolos) | As chaves podem ser qualquer tipo de dados |
Pedido de chave | As chaves não estão bem ordenadas | As chaves são ordenadas por inserção |
Padrões | Tem chaves padrão | Não tem chaves padrão |
Map.forEach()
O forEach()
método invoca um retorno de chamada para cada par de chave/valor em um Map:
Exemplo
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
Map.keys()
O keys()
método retorna um objeto iterador com as chaves em um Map:
Exemplo
// List all keys
let veggies = "";
for (const x of fruits.keys()) {
veggies += x;
}
Map.values()
O values
método retorna um objeto iterador com os valores em um Map:
Exemplo
// Sum all values
let total = 0;
for (const x of fruits.values()) {
total += x;
}
Map.entries()
O entries()
método retorna um objeto iterador com os [key,values] em um Map:
Exemplo
// List all entries
let text = "";
for (const x of fruits.entries()) {
text += x;
}
Objetos como chaves
Ser capaz de usar objetos como chaves é um importante recurso do Mapa.
Exemplo
// Create Objects
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// Create a Map
const fruits = new Map();
// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
Lembre-se: A chave é um objeto (maçãs), não uma string ("maçãs"):
Exemplo
fruits.get("apples"); // Returns undefined
Suporte ao navegador
Mapas JavaScript são suportados em todos os navegadores, exceto Internet Explorer:
Chrome | Edge | Firefox | Safari | Opera |