一、set的定义与概念
在Javascript中,set是一种特殊的数据结构,用来存储唯一值。与数组不同,set中的元素是唯一的,不允许重复。可以把set看作是没有重复元素的数组。set可以存储任何类型的值,包括原始类型和对象引用。
二、set的创建与初始化
1. 使用构造函数创建set对象
可以使用set构造函数来创建一个set对象,如下所示:
```javascript
let mySet = new Set();
```
这将创建一个空的set对象,可以向其中添加元素。
2. 使用数组初始化set对象
可以使用数组来初始化set对象,如下所示:
```javascript
let mySet = new Set([1, 2, 3, 4, 5]);
```
这将创建一个包含1、2、3、4、5这些元素的set对象。
三、set的常用方法
1. 添加元素
可以使用add方法向set对象中添加元素,如下所示:
```javascript
mySet.add(6);
```
这将在mySet中添加一个值为6的元素。
2. 删除元素
可以使用delete方法从set对象中删除元素,如下所示:
```javascript
mySet.delete(6);
```
这将从mySet中删除值为6的元素。
3. 查元素
可以使用has方法来判断set对象中是否包含某个元素,如下所示:
```javascript
mySet.has(6); // false
```
这将返回false,表示mySet中不包含值为6的元素。
4. 获取set对象的大小
可以使用size属性来获取set对象中元素的个数,如下所示:
```javascript
mySet.size; // 5
```
这将返回5,表示mySet中包含5个元素。
5. 清空set对象
可以使用clear方法来清空set对象中的所有元素,如下所示:
```javascript
mySet.clear();
```
这将清空mySet中的所有元素。
四、set与迭代器
1. 遍历set对象
可以使用f循环来遍历set对象中的元素,如下所示:
```javascript
for(let item of mySet) {
  console.log(item);
}
```
这将依次打印mySet中的每个元素。
2. 使用forEach方法遍历set对象
set对象还提供了forEach方法,可以使用它来遍历set对象中的元素,如下所示:
```javascript
mySet.forEach((value) => {
  console.log(value);
});
```
这将依次打印mySet中的每个元素。
五、set的应用场景
1. 去重
set的最常见用途就是对数组进行去重,可以将数组转换为set对象,然后再转换回数组,如下所示:
javascript数组对象```javascript
let arr = [1, 2, 3, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
这将得到一个去重后的数组uniqueArr。
2. 数据交集、并集、差集
set对象提供了一些方法可以对集合进行交集、并集和差集运算,如下所示:
```javascript
let set1 = new Set([1, 2, 3]);
let set2 = new Set([3, 4, 5]);
// 交集
let intersection = new Set([...set1].filter(x => set2.has(x)));
// 并集
let union = new Set([...set1, ...set2]);
// 差集
let difference = new Set([...set1].filter(x => !set2.has(x)));
```
这将得到set1与set2的交集、并集和差集。