1、ES6 - set 数据结构(可以去重)
特点:
Set 数据结构类似数组 所有数据都是唯一的 没有重复值(有去重功能) 本身是一个构造函数
属性和方法:
1、size :数据的长度
2、add():添加某个值 返回Set结构本身
3、delete():删除某个值 返回一个布尔值 表示是否删除成功 删除的值存在且删除返回true 反之返回false
4、has(): 查找某个值 返回一个布尔值 查找的值存在返回true 反之false
5、clear():清除所有成员 没有返回值- undefined 且原Set数据显示0属性是空
Set()数据结构怎么遍历?
一样可以用for of
2、数组的解构赋值
赋值和顺序有关
值要一一对应 如果有对应不上的就是undefined
3、对象的解构赋值
赋值和顺序无关 属性名和变量名必须一致
怎么给解构出来的变量修改名字?
怎么给解构出来的变量设置默认值?
1、当原对象的值变成undefined
2、删除原对象
4、ES6拓展运算符
作用:
1、字符串转数组
2、类数组或set集合转真正数组
3、合并数组
1、利用ES6 拓展运算符实现把字符串转成数组
2、利用拓展运算符转成真正的数组
利用new Set去重,利用拓展运算符把set集合转成真正的数组
注意:Array.prototype.slice.call 无法把Set集合转数组
3、利用拓展运算符来实现两个数组的合并
5、Map集合
键名和对应的值支持所有数据类型 本身是一个构造函数
1、Map的属性和方法
属性:
size 返回map的元素数
基本方法
(1)set() 给map添加数据,返回添加后的map(给已存在的键赋值后会覆盖掉之前的值)
(2)get() 获取某个key的值,返回key对应的值,没有则返回undefined
(3)has() 检测是否存在某个key,返回布尔值
(4)delete() 删除某个key及其对应的value,返回布尔值,成功删除则为true
(5)clear() 清除所有的值,返回undefined
2、Map遍历方式
注意:map的遍历顺序就是插入顺序
(1)keys() 获取map的所有key
(2)values() 获取map的所有值
(3)entries() 获取map的所有成员 map本身
3、for of — 使用for of 可以用来循环map迭代器
for of 不可以用来遍历对象 会提示对象不是一个迭代器 遍历对象只能使用for in
for of 可以遍历数组 里面的变量的值是数组的每一项
重点:
for of遍历map.entries()的时候 会把对象变成数组 对象的key变成数组的第一个值 对象的value变成第二个值
如何快速得到数组的key和value?
利用数组的解构赋值快速得到key和value
小练习:
拓展:
对象也有keys、values、和entries