Set数据结构,类似数组,所有的数据都是唯一的,没有重复的值,它本身是一个构造函数,主要是用来去重,但是必须转成真数组,我们来学习以下转真数组的两种方法.
第一种:Array.from
![](https://i-blog.csdnimg.cn/blog_migrate/17c48075bdd3b89dfdf2064dca48c2c2.png)
第二种
:拓展运算符:
...
利用拓展运算符把
set
集合将字符串
展开
,获得一组类数组
![](https://i-blog.csdnimg.cn/blog_migrate/7aabf8a1629392e77ef57329a79bd2d1.png)
在利用拓展
运算符来转成真正的数组
![](https://i-blog.csdnimg.cn/blog_migrate/f98d5aea7bfc24718a6d5a2b18c9f63e.png)
补充:Array.prototype.slice.call()这种方式的转成数组,并不是真正的转成数组,她更适合把函数中参数的集合转成数组
![](https://i-blog.csdnimg.cn/blog_migrate/ae045f97aac486a9208cb28036b32b0c.png)
利用拓展运算符来实现两个数组的合并
![](https://i-blog.csdnimg.cn/blog_migrate/c15d760d879681d1acd12930b88beccd.png)
把传过来的多个参数,组成数组
![](https://i-blog.csdnimg.cn/blog_migrate/876fa9959fd6a1f1b390459e6313b9da.png)
传两个参数:
注意:如果参数只有一个或者不传参,会返回undefined或空数组
![](https://i-blog.csdnimg.cn/blog_migrate/bb9d880ea8b7bc78c4645de7bc3c1e18.png)
Set的属性和方法
:
size 获取的是数组的长度,返回值是数据的长度
![](https://i-blog.csdnimg.cn/blog_migrate/8916787f9d5569438c49b162a78b929c.png)
add() 添加某个值,返回Set结构本身.
![](https://i-blog.csdnimg.cn/blog_migrate/cedd19b30bbdb5119f25b28e0d27511d.png)
delete() 删除某个值,返回一个布尔值,ture表示删除成功,fales表示不成功或者找不到
![](https://i-blog.csdnimg.cn/blog_migrate/bd4e5c62fbf6a3aff381565b51ec67f7.png)
has() 查找某条数据,返回一个布尔值,tu
re表示找到,fales表示没有查到
![](https://i-blog.csdnimg.cn/blog_migrate/db49e80008552e64926e6b66ae183289.png)
clear() 清除所有成员,因为清除了,所以没有任何返回值
![](https://i-blog.csdnimg.cn/blog_migrate/c8730e55793f5096046e392aecbcf0e5.png)
数组的解构赋值
数组中的值会自动被解析到对应接受该值的变量中,数组的解构赋值要一一对应,如果有对应不上的就是undefined
![](https://i-blog.csdnimg.cn/blog_migrate/ea15a49dcedead8da4d0af4c84d5ab07.png)
对象的解构赋值
对象的解构与数组有一个重要的不同,数组的元素是按次序排列的,变量的取值是由他的位置决定,
而对象的属性没有次序,变量必须与属性同名
,才能取到正确的值
![](https://i-blog.csdnimg.cn/blog_migrate/64ac2114eaf75664fa8b7e5c1773d7d9.png)
给解构出来的变量修改名字
![](https://i-blog.csdnimg.cn/blog_migrate/89349356758fef879c4fdf8f46869820.png)
给解构出来的变量添加默认值
解决遗漏赋值的问题,当对象里面的属性是undefined或者没有属性,就会将变量赋值成默认值
![](https://i-blog.csdnimg.cn/blog_migrate/ef26324a409c407df87c0c715e6a06c9.png)
set构造函数的for of循环,可以遍历数组
![](https://i-blog.csdnimg.cn/blog_migrate/445e7746e10ef05778e4c20e0dc8b56f.png)