最近一直在忙react项目,好久没写博客了,需要用到immutable数据,这里先预热下map和set数据
1 Set数据结构,是ES6的新的数据结构,该数据结构类似于数组,但是和数组不同的一点就是,数组中可以有相同的成员,但是Set数据结构不允许数据成员有一样的,Set数据结构的成员都是唯一的.
有序且不可重复的列表
|
|
Set是一个构造函数,可以用来生成set数据结构,生成的
|
|
Set构造函数可以直接接受一个数组作为参数,然后将该数组初始化为Set数据结构,但是不能接受一个对象作为参数,会报错
|
|
1.1 Set数据结构的属性和方法,通过输出我们在控制台可以看到Set构造函数原型链上的所有的API
|
|
对于我们常用的数组去重,这里就有了更好的实现方法
这里需要明确Array.from() 方法的使用,该方法接受
- 类数组对象:拥有一个length属性和若干索引属性的任意对象
- 可遍历对象:比如Map 和Set 数据结构
|
|
1.2 Set数据结构的遍历方法(Set数据结构可以理解为键名和键值是相同的)
|
|
|
|
2 Map数据结构,是ES6的新的数据结构,该数据结构类似于对象,也是键值对的集合,但是和对象不同的一点就是,对象中的中键名只能是字符串,但是Map数据结构的键名可以是任何数据类型,包括对象和数组
键值对集合,对应于Object,Map对象
|
|
所以这里需要注意的是Map数据结构的键名如果是复杂数据类型,那么判断键名是否一致的根本比较方式是判断的键名的内存地址,也就是说{ }
和 { }
这两个键名代表的是不同的键名.
|
|
Map是一个构造函数,用来生成一个Map结构的数据对象
|
|
1.1 Map数据结构的属性和方法,通过输出我们在控制台可以看到Set构造函数原型链上的所有的API
|
|
1.2 Map数据结构的遍历
|
|
|
|
1.3 Map构造函数接受的参数:原生数据结构具有Iterator接口,比如数组,类数组对象,Map和Set数据
|
|
1.4 Map数据结构转化为数组,通过使用 ...
扩展运算符,数组转化为Map结构,可以作为Map构造函数参数直接传入
|
|