ES6 引入了两种新的数据结构:Set 和 Map。它们提供了一种存储键值对的方式,但与传统的对象(Object)和数组(Array)有所不同。
Set
Set 是一种特殊的类型,它类似于数组,但成员的值都是唯一的,没有重复的值。
使用 Set

创建 Set

let set = new Set();

添加元素

使用 add() 方法添加元素。
set.add(1);
set.add(2);
set.add(2); // 注意:这里虽然调用了两次 add(2),但 Set 中只会有一个 2

检查元素是否存在

使用 has() 方法检查元素是否存在。
console.log(set.has(1)); // true
console.log(set.has(3)); // false

删除元素

使用 delete() 方法删除元素。
set.delete(2);
console.log(set.has(2)); // false

遍历 Set

你可以使用 for…of 循环遍历 Set。
for (let item of set) {
console.log(item); // 1
}

Set 的大小

使用 size 属性获取 Set 的大小。
console.log(set.size); // 1

Map
Map 是一种键值对的集合,类似于对象,但键(key)和值(value)可以是任何类型的值。
使用 Map

创建 Map

let map = new Map();

添加元素

使用 set() 方法添加元素。
map.set(‘key1’, ‘value1’);
map.set(‘key2’, ‘value2’);

获取元素

使用 get() 方法获取元素。
console.log(map.get(‘key1’)); // ‘value1’

检查元素是否存在

使用 has() 方法检查元素是否存在。
console.log(map.has(‘key1’)); // true
console.log(map.has(‘key3’)); // false

删除元素

使用 delete() 方法删除元素。
map.delete(‘key2’);
console.log(map.has(‘key2’)); // false

遍历 Map

你可以使用 for…of 循环遍历 Map。在每次迭代中,你都会得到一个包含两个元素的数组:键和值。
for (let [key, value] of map) {
console.log(key, value); // ‘key1’ ‘value1’
}

Map 的大小

使用 size 属性获取 Map 的大小。
console.log(map.size); // 1

希望这能帮助你理解 ES6 的 Set 和 Map 数据结构及其用法!