Métodos de Map de JavaScript
new Map() 方法
可以通过将数组传递给 new Map()
构造函数来创建 Map:
instancia
// Crear un Map const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
Map.get()
se puede usar get()
方法获取 Map 中键的值:
instancia
fruits.get("apples");
Map.set()
se puede usar set()
方法向 Map 添加元素:
instancia
// Crear un Map const fruits = new Map(); // 设置 Map 值 fruits.set("apples", 500); fruits.set("bananas", 300); fruits.set("oranges", 200);
set()
方法也可以用于更改现有的 Map 值:
instancia
fruits.set("apples", 500);
Map.size
size
属性返回 Map 中元素的数量:
instancia
fruits.size;
Map.delete()
delete()
方法移除 Map 中的一个元素:
instancia
fruits.delete("apples");
Map.clear()
clear()
方法移除 Map 中的所有元素:
instancia
fruits.clear();
Map.has()
如果 Map 中存在某个键,has()
方法返回 true:
instancia
fruits.has("apples");
尝试以下代码:
fruits.delete("apples"); fruits.has("apples");
Map.forEach()
forEach()
方法为 Map 中的每个键值对调用回调函数:
instancia
// 列出所有条目 let text = ""; fruits.forEach(function(value, key) { text += key + ' = ' + value; });
Map.entries()
entries()
方法返回一个包含 Map 中 [key, value] 对的迭代器对象:
instancia
// 列出所有条目 let text = ""; for (const x of fruits.entries()) { text += x; }
Map.keys()
keys()
方法返回一个包含 Map 中键的迭代器对象:
instancia
// 列出所有键 let text = ""; for (const x of fruits.keys()) { text += x; }
Map.values()}
values()
el método devuelve un objeto iterador que contiene los valores del Map:
instancia
// Listar todos los valores let text = ""; for (const x of fruits.values()) { text += x; }
se puede usar values()
el método suma los valores en el Map:
instancia
// Sumar todos los valores let total = 0; for (const x of fruits.values()) { total += x; }
objeto como clave
Sugerencia:poder usar objetos como claves es una característica importante de Map.
instancia
// Crear objetos const apples = {name: 'Apples'}; const bananas = {name: 'Bananas'}; const oranges = {name: 'Oranges'}; // Crear un Map const fruits = new Map(); // Añadir nuevos elementos al Map fruits.set(apples, 500); fruits.set(bananas, 300); fruits.set(oranges, 200);
Atención:la clave es el objeto (apples), no la cadena ("apples"):
instancia
fruits.get("apples"); // Devuelve undefined
JavaScript Map.groupBy()
ES2024 añadió a JavaScript Map.groupBy()
método.
Map.groupBy()
el método agrupa los elementos del objeto en función del valor de cadena devuelto por la función de callback.
Map.groupBy()
el método no cambia el objeto original.
instancia
// Crear un array const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; // Función de callback para agrupar function myCallback({ quantity }) { return quantity > 200 ? "ok" : "low"; } // Agrupar por cantidad const result = Map.groupBy(fruits, myCallback);
Compatibilidad con navegadores
Map.groupBy()
Es una característica de ES2024.
A partir de marzo de 2024, todos los navegadores nuevos admiten esta característica:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
Septiembre de 2023 | Septiembre de 2023 | Octubre de 2023 | Octubre de 2024 | Mayo de 2023 |
Advertencia:
Las características de ES2024 son relativamente nuevas.
Los navegadores antiguos pueden necesitar código alternativo (Polyfill).
La diferencia entre Object.groupBy() y Map.groupBy()
Object.groupBy()
Y Map.groupBy()
La diferencia radica en:
Object.groupBy()
Agrupar elementos en un objeto JavaScript.
Map.groupBy()
Agrupar elementos en un objeto Map.
Manual de referencia completo de Map
Para obtener información completa, visite nuestra:Manual de Map JavaScript.
Este manual contiene descripciones e instancias de todas las propiedades y métodos de Map.