ECMAScript 6 Set和Map数据结构
2019-07-26 本文已影响0人
Rising_life
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成 Set 数据结构。
Set的声明
![](https://img.haomeiwen.com/i16375643/89970bb47cb44c0b.png)
Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是他不是数组。
Set值的增删查
追加(add):
在使用Array的时候,可以用push进行追加值,那Set稍有不同,它用更语义化的add进行追加。
![](https://img.haomeiwen.com/i16375643/f01f9fe51a0fef69.png)
删除(delete):
![](https://img.haomeiwen.com/i16375643/f4a9a34512623ff7.png)
查找(has):
用has进行值的查找,返回的是true或者false。
![](https://img.haomeiwen.com/i16375643/60081fa1c3b2e1d8.png)
清空(clear):
![](https://img.haomeiwen.com/i16375643/30dd12d0973e6912.png)
size属性
size属性可以获得Set值的数量
![](https://img.haomeiwen.com/i16375643/ee4f4e80963e9b55.png)
map
Json和map格式的对比
map的效率和灵活性更好
![](https://img.haomeiwen.com/i16375643/0c9624198d35d1e0.png)
这种反应的速度要低于数组和map结构。而且Map的灵活性要更好,你可以把它看成一种特殊的键值对,但你的key可以设置成数组,值也可以设置成字符串,让它不规律对应起来。
![](https://img.haomeiwen.com/i16375643/e03385e087e6e9b8.png)
取值get
![](https://img.haomeiwen.com/i16375643/fbc19cbc99e174ec.png)
删除、查找、清除、size 与 Set 相同