Set 和 Map 是 ES6 引入的两种新的数据结构,它们为 JavaScript 提供了更多的数据组织方式。下面是它们的主要用法:
Set:
Set 是一种存储唯一值的集合,可以是任何类型的值(原始值或对象引用)。
-
创建 Set:
let mySet = new Set(); // 或者从数组创建 let mySet = new Set([1, 2, 3, 4]);
-
添加值:
mySet.add(5); mySet.add("some text");
-
删除值:
mySet.delete(5);
-
检查值是否存在:
mySet.has("some text"); // true
-
获取 Set 大小:
mySet.size;
-
清空 Set:
mySet.clear();
-
遍历 Set:
for (let item of mySet) { console.log(item); } // 或者 mySet.forEach((value) => console.log(value));
-
常见用途:
- 去除数组中的重复元素
- 保存不重复的值集合
Map:
Map 是一种存储键值对的集合,其中键和值都可以是任何类型。
-
创建 Map:
let myMap = new Map(); // 或者从二维数组创建 let myMap = new Map([["key1", "value1"], ["key2", "value2"]]);
-
设置键值对:
myMap.set("key3", "value3");
-
获取值:
myMap.get("key1"); // "value1"
-
删除键值对:
myMap.delete("key2");
-
检查键是否存在:
myMap.has("key3"); // true
-
获取 Map 大小:
myMap.size;
-
清空 Map:
myMap.clear();
-
遍历 Map:
for (let [key, value] of myMap) { console.log(key + " = " + value); } // 或者 myMap.forEach((value, key) => console.log(key + " = " + value));
-
获取所有键或值:
let keys = myMap.keys(); let values = myMap.values();
-
常见用途:
- 存储键值对数据
- 创建关联数组(任何类型都可以作为键)
Set 和 Map 的主要区别:
- Set 只存储值,而 Map 存储键值对
- Set 中的值是唯一的,而 Map 允许重复的值(但键是唯一的)
- Set 主要用于检查值是否存在,而 Map 用于存储和检索键值对
这两种数据结构为 JavaScript 开发者提供了更多的选择,可以根据具体需求选择合适的结构来组织和管理数据。