JavaScript Map 方法
新的 Map() 方法
您可以通过将数组传递给 new Map()
构造函数来创建 map。
示例
// 创建一个 Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
自己动手试一试 »
Map.get()
使用 get()
方法获取 map 中某个键的值。
Map.set()
使用 set()
方法可以向 map 添加元素。
示例
// 创建一个 Map
const fruits = new Map();
// 设置 Map 值
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
自己动手试一试 »
set()
方法也可用于更改现有的 map 值。
Map.size
size
属性返回 map 中的元素数量。
Map.delete()
delete()
方法删除 map 中的一个元素。
Map.clear()
clear()
方法删除 map 中的所有元素。
Map.has()
has()
方法在 map 中存在键时返回 true。
Map.forEach()
forEach()
方法为 map 中的每个键/值对调用一个回调函数。
示例
// 列出所有条目
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
自己动手试一试 »
Map.entries()
entries()
方法返回一个包含 map 中 [key, value] 对的迭代器对象。
Map.keys()
keys()
方法返回一个包含 map 中键的迭代器对象。
Map.values()
values()
方法返回一个包含 map 中值的迭代器对象。
可以使用 values()
方法对 map 中的值求和。
对象作为键
能够使用对象作为键是 Map 的一个重要特性。
示例
// 创建对象
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
// 创建一个 Map
const fruits = new Map();
// 向 Map 添加新元素
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);
自己动手试一试 »
记住:键是对象(apples),而不是字符串("apples”)
JavaScript Map.groupBy()
ES2024 添加了 Map.groupBy()
方法到 JavaScript。
Map.groupBy()
方法根据回调函数返回的字符串值对对象的元素进行分组。
Map.groupBy()
方法不会更改原始对象。
示例
// 创建一个数组
const fruits = [
{name:"apples", quantity:300},
{name:"bananas", quantity:500},
{name:"oranges", quantity:200},
{name:"kiwi", quantity:150}
];
// Callback function to Group Elements
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// Group by Quantity
const result = Map.groupBy(fruits, myCallback);
自己动手试一试 »
浏览器支持
Map.groupby()
是 ES2024 的特性。
自 2024 年 3 月起,新浏览器已支持此功能。
Chrome 117 | Edge 117 | Firefox 119 | Safari 17.4 | Opera 103 |
2023 年 9 月 | 2023 年 9 月 | 2023 年 10 月 | 2024 年 10 月 | 2023 年 5 月 |
警告
ES2024 的特性相对较新。
旧版浏览器可能需要替代代码(Polyfill)。
Object.groupBy() vs Map.groupBy()
Object.groupBy() 和 Map.groupBy() 之间的区别是
Object.groupBy() 将元素分组到 JavaScript 对象中。
Map.groupBy() 将元素分组到 Map 对象中。