Map 是 JavaScript 中的一种数据结构,它允许你存储键值对,并且可以使用键来检索值。
Map对象的特点:
-
键的类型不限: 在 Map 中,键可以是任何数据类型,包括基本数据类型(如字符串、数字)以及对象、函数等。而在普通的对象中,键只能是字符串或者 Symbol。
-
保持元素的插入顺序: Map 对象中的元素按照它们被插入的顺序保存,这与普通对象不同,普通对象不保证元素的顺序。
-
可迭代: Map 是可迭代的,可以通过 for…of 循环遍历其中的键值对。
-
动态大小: Map 的大小可以动态改变,可以通过添加或删除键值对来调整大小。
-
方法丰富: Map 提供了一系列方法用于操作和查询元素,如 set(设置键值对)、get(获取键对应的值)、has(检查键是否存在)、delete(删除键值对)等。
例:
// 创建一个空的 Map
let myMap = new Map();
// 添加键值对
myMap.set("key1", "value1");
myMap.set(42, "value2");
myMap.set({ name: "John" }, "value3");
// 获取值
console.log(myMap.get("key1")); // 输出: value1
// 检查键是否存在
console.log(myMap.has(42)); // 输出: true
console.log(myMap.has("key3")); // 输出: false
// 删除键值对
myMap.delete("key1");
// 遍历 Map
for (let [key, value] of myMap) {
console.log(`${key} = ${value}`);
}