es6随手记---Set和Map数据结构

1.Set     新的数据结构   不会计入重复值,所以可以用来数组去重    可以加入数组(或者具有 iterable 接口的其他数据结构),size属性确定长度

const s = new Set([1,2,4,4])

[...s]    //[1,2,4]

set内部的数字判断,认为NaN是等于自己本身的

相关方法

add(value)   添加值,然后返回set结构本身

delete(value)  删除某个值,返回布尔值,判断删除是否成功

has(value)    返回一个布尔值,表示该值是否为Set的成员。

clear()     清除Set内的全部成员,没有返回值

keys()     返回键名的遍历

values()   返回键值的遍历

entries()   返回键值对的遍历

forEach()   遍历全部成员

默认使用values()遍历

 

WeakSet

基本与Set数据结构类似,区别是没法进行遍历,没有size属性;成员只能是对象,而且是弱引用(垃圾回收机制不会考虑WeakSet对对象的引用),可以避免出现内存泄漏的情况。

内存泄漏:没有取消引用,内存无法释放

 

2.Map    新的数据结构   与对象类似,区别是对象的键名只能是字符串,Map的键名可以是任何类型

不仅仅是数组,任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构都可以当作Map构造函数的参数。这就是说,Set和Map都可以用来生成新的 Map。

属性,相关方法

size属性用来确定Map的长度

set(key,value)    设置值,如果key存在就更新,返回整个数据结构。

get(key)     返回key对应的键值,如果不存在则返回undefiend

has(key)     返回布尔值,判断键是否存在

delete(key)  返回布尔值,表示删除是否成功

clear()      清除全部成员   没有返回值

keys()     返回键名的遍历

values()   返回键值的遍历

entries()   返回键值对的遍历

forEach()   遍历全部成员

默认使用entries()遍历

Map结构转数组结构,可以使用扩展运算符...       

 

WeakMap 

基本与Map数据结构没区别,区别和WeakSet类似。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值