Web/05-JavaScript之ES6语法/09-内置对象扩展:Set数据结构.md
2020-08-25 21:35:30 +08:00

45 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Set 数据结构
### Set 数据结构的介绍
ES6 提供了 新的数据结构 SetSet 类似于**数组**但成员的值都是**唯一**没有重复的值
Set 的应用有很多比如 H5 页面的搜索功能里用户可能会多次搜索重复的关键字但是在数据存储上不需要存储重复的关键字此时我们就可以用 Set 来存储用户的搜索记录Set 内部会自动判断值是否重复如果重复则不会进行存储十分方便
### 生成 Set 数据结构
Set 本身就是一个构造函数可通过 `new Set()` 生成一个 Set 的实例
举例 1
```js
const set1 = new Set();
console.log(set1.size); // 打印结果0
```
**举例 2**可以接收一个**数组**作为参数实现**数组去重**
```js
const set2 = new Set(['张三', '李四', '王五', '张三']); // 注意,这个数组里有重复的值
// 注意,这里的 set2 并不是数组,而是一个单纯的 Set 数据结构
console.log(set2); // {"张三", "李四", "王五"}
// 通过扩展运算符,拿到 set 中的元素(用逗号分隔的序列)
// ...set2 // "张三", "李四", "王五"
// 注意,到这一步,才获取到了真正的数组
console.log([...set2]); // ["张三", "李四", "王五"]
```
注意上方的第一行代码虽然参数里传递的是数组结构但拿到的 `set2` 不是数组结构而是 Set 结构而且里面元素是去重了的通过 `[...set2]`就可以拿到`set2`对应的数组
## 我的公众号
想学习**代码之外的技能**不妨关注我的微信公众号**千古壹号**
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
![](http://img.smyhvae.com/20200101.png)