Hello小伙伴们,今天我们先把扩展放一放,为大家隆重介绍我们ES6新添加的两位成员——Set和Map!我们将分别从它们的基础用法、常用方法、遍历方法和特殊对象四个方面进行介绍。
Set
01
基础用法
Set类似于Array,但是有一个特点,那就是成员的值都是唯一的,不能重复,所以把数组转化成为Set是一个去重的小妙招呢~
1)定义一个Set结构很简单,new一个就好了~
let s = new Set();
2)其实Set也可以接受参数
比如接受一个数组:
比如接受一个类数组:
那么怎么通过Set将数组去重呢?我们来试试:首先将数组传入Set,然后将Set转化为数组
02
常用方法
方法都是字面意思
1)add(value):为Set添加成员
2)delete(value):为Set删除成员,返回是否成功删除
3)has(value):判断是否含有某成员
4)clear():清除所有成员
03
遍历
说到遍历,我们一般会涉及键的遍历,值的遍历和键值对的遍历
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
size():返回长度
04
WeakSet
这个与Set类似啦,只要记住两点就好,WeakSet的成员只能是对象呢!而且即使WeakSet引用对象,也一样会被垃圾回收机制回收呢~
Map
01
基本用法
Map呢相似于对象,但是与对象又有些不同,也是键值对的组合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
创建也很容易:
const m = new Map();
02
常用方法
有很多相似于set,着重介绍一下不同的方法
1)size():返回长度
2)set(k,v):添加成员,这个添加成员不同于Set的add,是通过set添加的
3)get(key):读取值
4)has(key):判断是否含有成员
5)delete(key):删除成员
6)clear():清除所有成员
03
遍历方法
还是这四个呢~
1)keys():返回键名的遍历器。
2)values():返回键值的遍历器。
3)entries():返回所有成员的遍历器。
4)forEach():遍历 Map 的所有成员。
04
WeakMap
同样也提一下WeakMap,相同与Map,但是不同于Map:
相同:都是用于生成键值对的集合。
不同:1)WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。
2)WeakMap 弱引用的只是键名,而不是键值。键值依然是正常引用。
好啦~今天的分享就到这里啦~记住Set和Map两大神器了吗~~喜欢兔妞的文章就请加关注点个在看吧~~