Métodos do Map do JavaScript
new Map() 方法
可以通过将数组传递给 new Map()
构造函数来创建 Map:
instância
// Criando um Map const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
Map.get()
Pode usar get()
方法获取 Map 中键的值:
instância
fruits.get("apples");
Map.set()
Pode usar set()
方法向 Map 添加元素:
instância
// Criando um Map const fruits = new Map(); // 设置 Map 值 fruits.set("apples", 500); fruits.set("bananas", 300); fruits.set("oranges", 200);
set()
方法也可以用于更改现有的 Map 值:
instância
fruits.set("apples", 500);
Map.size
size
属性返回 Map 中元素的数量:
instância
fruits.size;
Map.delete()
delete()
方法移除 Map 中的一个元素:
instância
fruits.delete("apples");
Map.clear()
clear()
方法移除 Map 中的所有元素:
instância
fruits.clear();
Map.has()
如果 Map 中存在某个键,has()
方法返回 true:
instância
fruits.has("apples");
尝试以下代码:
fruits.delete("apples"); fruits.has("apples");
Map.forEach()
forEach()
方法为 Map 中的每个键值对调用回调函数:
instância
// 列出所有条目 let text = ""; fruits.forEach(function(value, key) { text += key + ' = ' + value; });
Map.entries()
entries()
方法返回一个包含 Map 中 [key, value] 对的迭代器对象:
instância
// 列出所有条目 let text = ""; for (const x of fruits.entries()) { text += x; }
Map.keys()
keys()
方法返回一个包含 Map 中键的迭代器对象:
instância
// 列出所有键 let text = ""; for (const x of fruits.keys()) { text += x; }
Map.values()
values()
O método retorna um objeto iterador que contém os valores do Map:
instância
// Listando todos os valores let text = ""; for (const x of fruits.values()) { text += x; }
Pode usar values()
O método soma os valores no Map:
instância
// Somando todos os valores let total = 0; for (const x of fruits.values()) { total += x; }
Objetos como chaves
Dica:Pode usar objetos como chaves, uma característica importante do Map.
instância
// Criando objetos const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Criando um Map const fruits = new Map(); // Adicionando novos elementos ao Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
Atenção:A chave é o objeto (apples), não a string ("apples"):
instância
fruits.get("apples"); // Retorna undefined
JavaScript Map.groupBy()
O ES2024 adicionou ao JavaScript Map.groupBy()
Método.
Map.groupBy()
O método agrupa os elementos do objeto com base no valor de string retornado pela função de callback.
Map.groupBy()
O método não altera o objeto original.
instância
// Criando um array const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // Função de callback usada para agrupamento function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // Agrupando por quantidade const result = Map.groupBy(fruits, myCallback);
Suporte do Navegador
Map.groupBy()
é uma característica do ES2024.
A partir de março de 2024, todos os novos navegadores suportam essa característica:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
Setembro de 2023 | Setembro de 2023 | Outubro de 2023 | Outubro de 2024 | Maio de 2023 |
Aviso:
A característica ES2024 é relativamente nova.
navegadores antigos podem precisar de código alternativo (Polyfill).
Diferenças entre Object.groupBy() e Map.groupBy()
Object.groupBy()
E Map.groupBy()
A diferença está em:
Object.groupBy()
Agrupar elementos em um objeto JavaScript.
Map.groupBy()
Agrupar elementos em um objeto Map.
Manual de Referência Completo do Map
Para referência completa, acesse nossa:Manual de Referência Map JavaScript.
Este manual contém descrições e exemplos de todas as propriedades e métodos do Map.