Set,weakSet,map

set:

set本身是一个构造函数,类似于数组,代表的是唯一的值,但要注意两个相同的对象是不会去重的,常用方法有

let set = new Set()
set.add(value); //添加
set.delete(value); //删除
set.has(value); //判断是否存在,返回bool值
set.clear(); //清除全部

// 去除数组的重复成员
[...new Set(array)]

// 去除字符串里面的重复字符。

[...new Set('ababbc')].join('')

Set 结构的实例有四个遍历方法,可以用于遍历成员。

Set.prototype.keys():返回键名的遍历器
Set.prototype.values():返回键值的遍历器
Set.prototype.entries():返回键值对的遍历器
Set.prototype.forEach():使用回调函数遍历每个成员
需要特别指出的是,Set的遍历顺序就是插入顺序。这个特性有时非常有用,比如使用 Set 保存一个回调函数列表,调用时就能保证按照添加顺序调用。

weakSet与set类似但有两处不同:

1.weakSet的值只能是对象不能是其他

2.weakSet的值是弱引用

因为weakSet的值都是弱引用所以在其他对象不在引用weakSet的时候垃圾回收机制会自动将其回收该对象所占用的内存,也因此es6规定weakSet不可遍历

 map:

js的对象,键值对的集合体,对象的键只能是字符串但map的键不限于任何类型,所以在需要键值对结构时map比对象更合适

使用场景:

不确定键名的类型需要用到map,例如从MongoDB

常用方法:

let map = new Map();
let o = {p:'ww'}
//添加
map.set(键,值);
map.set('www','网址');
//获取有返回对应值,没有返回undefined
map.get(键);
map.get('www');//'网址'
map.get('w');//undefined

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值