JavaScript Set和Map集合
在 Javascript 开发中,我们常常需要处理数据的存储和访问。当遇到需要高效去重
或者需要键值对
存储时,Set 和 Map 集合可满足我们的需求。
Set 集合
Set
是一种特殊的数据结构,它类似于数组,但其成员的值都是唯一的,没有重复的值。这意味着,如果你尝试向 Set
中添加一个已经存在的值,它将不会被重复添加。
1、创建 Set 对象:
const mySet = new Set();
2、添加元素:
使用 add() 方法向 Set 中添加元素。如果添加重复元素,Set 会自动忽略。
mySet.add(1);
mySet.add("hello");
mySet.add({name: "Alice"});
mySet.add(1); // 重复添加,会被忽略
3、检查元素是否存在:
使用 has() 方法检查 Set 中是否包含某个元素。
mySet.has(1); // true
mySet.has("world"); // false
4、遍历 Set:
可以使用 for…of 循环遍历 Set 中的元素。
for (const item of mySet) {
console.log(item);
}
5、其他常用方法:
- delete(value): 删除 Set 中的指定元素。
- clear(): 清空 Set 中的所有元素。
- size: 获取 Set 中元素的数量。
Map 集合
与只能存储值的 Set 不同,Map 对象允许你存储键值对,并支持任何类型作为键。
1、创建 Map 对象:
const myMap = new Map();
2、添加键值对:
使用 set(key, value) 方法向 Map 中添加键值对。
myMap.set("name", "Bob");
myMap.set(1, "one");
myMap.set({id: 1}, {name: "Charlie"});
3、获取值:
使用 get(key) 方法根据键获取对应的值。
myMap.get("name"); // "Bob"
myMap.get(1); // "one"
4、检查键是否存在:
使用 has(key) 方法检查 Map 中是否包含某个键。
myMap.has("name"); // true
myMap.has("age"); // false
5、遍历 Map:
可以使用 for…of 循环遍历 Map 中的键值对。
for (const [key, value] of myMap) {
console.log(key, value);
}
6、其他常用方法:
- delete(key): 删除 Map 中指定键的键值对。
- clear(): 清空 Map 中的所有键值对。
- size: 获取 Map 中键值对的数量。