es6中Set和Map的数据结构

一、Set
它类似于数组,但是成员的值都是唯一的,没有重复的值。所以可以用来数组去重
es6中Set和Map的数据结构
遍历操作
Set结构的实例有四个遍历方法,可以用于遍历成员。

(1)keys():返回键名的遍历器
(2)values():返回键值的遍历器
(3)entries():返回键值对的遍历器
(4)forEach():使用回调函数遍历每个成员

二、Map
Map结构的目的和基本用法
JavaScript的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。
es6中Set和Map的数据结构
实例的属性和操作方法
Map结构的实例有以下属性和操作方法。

(1)size属性
size属性返回Map结构的成员总数。
(2)set(key, value)
set方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
(3)get(key)
get方法读取key对应的键值,如果找不到key,返回undefined。

遍历的方法和set一样

与其他数据结构的互相转换(这个是重点)
(1)Map转为数组
前面已经提过,Map转为数组最方便的方法,就是使用扩展运算符(…)。es6中Set和Map的数据结构

(2)数组转为Map
将数组转入Map构造函数,就可以转为Map。
es6中Set和Map的数据结构
(3)Map转为对象
如果所有Map的键都是字符串,它可以转为对象。
es6中Set和Map的数据结构
(4)对象转为Map
es6中Set和Map的数据结构
(5)Map转为JSON
Map转为JSON要区分两种情况。一种情况是,Map的键名都是字符串,这时可以选择转为对象JSON。
es6中Set和Map的数据结构
另一种情况是,Map的键名有非字符串,这时可以选择转为数组JSON。
es6中Set和Map的数据结构
(6)JSON转为Map
JSON转为Map,正常情况下,所有键名都是字符串。
es6中Set和Map的数据结构