【ES6】Set和Map数据结构

Set

1 类似于数组,但成员的值都是唯一的
2 初始化:

let set=new Set();
let set1=new Set([1,2,3,4,4]);
//去除数组重复成员:
[...new Set(array)]

3 向set加入值时不会发生类型转换,因此5和‘5‘是不同的值;但是在set内部,只能添加一个NaN;传入两个空对象被认为是两个值。
4 set实例的属性和方法:
属性:

  • Set.prototype.constructor
  • Set.prototype.size:返回set实例的成员总数。
    方法:
  • add():返回set本身
  • delete():删除某个值,返回布尔值
  • has():表示是否是set成员
  • clear():清除所有成员

5 遍历操作

  • keys():返回键名的遍历器
  • values():
  • entries():返回键值对
  • forEach():使用回调函数遍历每个成员
  • 列表内容

WeakSet

1 成员只能是对象,而不能是其他成员的值。
2 对象都是弱引用,即垃圾回收机制不考虑weakset对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象占有的内存。
因此weakSet不可遍历。

Map

map结构提供了“值-值“的对应,是一种更完善的hash
属性和方法:

  • size
  • set(key, value)
  • get(key)
  • has(key)
  • delete(key)
  • clear()

遍历:

  • keys()
  • values()
  • entries()
  • forEach()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值