js new map()
1. 简介
在 JavaScript 中,Map
是一种键值对的集合,其中键和值可以是任意类型的数据。与普通的对象相比,Map
提供了更加灵活和高效的操作方法,并可以有效地解决一些常见的问题。
Map
是 ES6 新增的数据结构之一,用于存储一组唯一的键值对。Map
对象可以通过 new
关键字来创建。
2. 创建 Map 对象
const myMap = new Map();
上述代码创建了一个空的 Map
对象 myMap
。
3. 向 Map 对象添加元素
使用 set(key, value)
方法向 Map
对象中添加新的键值对:
const myMap = new Map();
// 添加键值对
myMap.set("name", "John");
myMap.set("age", 30);
上述代码向 myMap
中添加了两个键值对,键为字符串类型,值为任意类型。
4. 获取 Map 对象的大小
使用 size
属性获取 Map
对象中键值对的数量:
console.log(myMap.size); // 输出: 2
上述代码输出了 myMap
中键值对的数量,即 2。
5. 使用 Map 对象的键获取值
使用 get(key)
方法根据键获取对应的值:
console.log(myMap.get("name")); // 输出: John
上述代码输出了键为 “name” 的值,即 John。
6. 检查 Map 对象中是否存在指定的键
使用 has(key)
方法判断 Map
对象中是否存在特定的键:
console.log(myMap.has("age")); // 输出: true
console.log(myMap.has("height")); // 输出: false
上述代码分别判断了 age
和 height
是否存在于 myMap
中,并输出。
7. 使用 Map 对象的键删除对应的键值对
使用 delete(key)
方法删除 Map
对象中指定键的键值对:
myMap.delete("name");
console.log(myMap.get("name")); // 输出: undefined
上述代码删除了键为 name
的键值对,并尝试获取该键的值,输出为 undefined
。
8. 遍历 Map 对象
Map
对象可以使用多种方法进行遍历处理键值对。
8.1 使用 for…of 循环遍历
const myMap = new Map();
myMap.set("name", "John");
myMap.set("age", 30);
for (const [key, value] of myMap) {
console.log(key + " = " + value);
}
上述代码使用 for...of
循环遍历了 myMap
中的键值对,并将键和值通过字符串拼接输出。运行结果如下:
name = John
age = 30
8.2 使用 forEach 方法遍历
myMap.forEach((value, key) => {
console.log(key + " = " + value);
});
上述代码使用 forEach
方法遍历了 myMap
中的键值对,并按照相同的格式输出。运行结果与前述示例相同。
9. 清空 Map 对象
使用 clear()
方法可以清空 Map
对象中的所有键值对:
myMap.clear();
console.log(myMap.size); // 输出: 0
上述代码清空了 myMap
中的所有键值对,并输出此时 myMap
的大小,即 0。
10. 注意事项
Map
对象中的键是唯一的,重复设置同一个键的值会覆盖之前的值。Map
对象可以用任何类型作为键和值,包括函数、对象、基本数据类型等。Map
对象的键和值是有序的。Map
对象的键和普通对象的键不同,普通对象的键只能是字符串或者符号,而Map
对象的键可以是任意类型的数据。
11. 总结
本文介绍了 JavaScript 中的 Map
对象,包括创建对象、添加元素、获取大小、获取键对应的值、判断键是否存在、删除键值对、遍历对象等操作。Map
对象提供了一种灵活、高效的方式来存储和操作键值对,适用于各种场景。对于需要高效存储和访问数据的情况,Map
是一个很好的选择。