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]
]);

Experimente você mesmo

Map.get()

Pode usar get() 方法获取 Map 中键的值:

instância

fruits.get("apples");

Experimente você mesmo

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);

Experimente você mesmo

set() 方法也可以用于更改现有的 Map 值:

instância

fruits.set("apples", 500);

Experimente você mesmo

Map.size

size 属性返回 Map 中元素的数量:

instância

fruits.size;

Experimente você mesmo

Map.delete()

delete() 方法移除 Map 中的一个元素:

instância

fruits.delete("apples");

Experimente você mesmo

Map.clear()

clear() 方法移除 Map 中的所有元素:

instância

fruits.clear();

Experimente você mesmo

Map.has()

如果 Map 中存在某个键,has() 方法返回 true:

instância

fruits.has("apples");

Experimente você mesmo

尝试以下代码:

fruits.delete("apples");
fruits.has("apples");

Experimente você mesmo

Map.forEach()

forEach() 方法为 Map 中的每个键值对调用回调函数:

instância

// 列出所有条目
let text = "";
fruits.forEach(function(value, key) {
  text += key + ' = ' + value;
});

Experimente você mesmo

Map.entries()

entries() 方法返回一个包含 Map 中 [key, value] 对的迭代器对象:

instância

// 列出所有条目
let text = "";
for (const x of fruits.entries()) {
  text += x;
}

Experimente você mesmo

Map.keys()

keys() 方法返回一个包含 Map 中键的迭代器对象:

instância

// 列出所有键
let text = "";
for (const x of fruits.keys()) {
  text += x;
}

Experimente você mesmo

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;
}

Experimente você mesmo

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;
}

Experimente você mesmo

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);

Experimente você mesmo

Atenção:A chave é o objeto (apples), não a string ("apples"):

instância

fruits.get("apples"); // Retorna undefined

Experimente você mesmo

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);

Experimente você mesmo

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.