ECMAScript6-集合

Set

无论是什么语言,还是什么数据结构,感觉Set没什么可说的,还是直接上API靠谱:

1.new Set:创建一个新的、空的 Set。

2.new Set(iterable):从任何 可遍历数据 中提取元素,构造出一个新的集合。

3.set.size:获取集合的大小,即其中元素的个数。

4.set.has(value):判定集合中是否含有指定元素,返回一个布尔值。

5.set.add(value):添加元素。如果与已有重复,则不产生效果。

6.set.delete(value):删除元素。如果并不存在,则不产生效果。add()和delete()都会返回集合自身。

7.set[Symbol.iterator]() :返回一个新的遍历整个集合的迭代器。一般这个方法不会被直接调用,因为实际上就是它使集合能够被遍历,我们可以直接写 for (v of set) 等等。

8.set.forEach(f):类似于数组的forEach方法。

9.set.clear():清空集合。

10.set.keys()/set.values()/set.entries() 返回各种迭代器,它们是为了兼容Map而提供的。

Map

Map跟Set一样,很熟悉了,这里直接列出API:

1.new Map:返回一个新的、空的Map 。

2.new Map(pairs):根据所含元素形如[ value]的数组pairs来创建一个新的Map。这里提供的pairs可以是一个已有的Map对象,可以是一个由二元数组组成的数组,也可以是逐个生成二元数组的一个生成器等等。

3.map.size:返回Map中项目的个数。

4.map.has(key):测试一个键名是否存在。

5.map.get(key):返回一个键名对应的值,若键名不存在则返回 undefined。

6.map.set(key, value):添加一对新的键值对,如果键名已存在就覆盖。

7.map.delete(key):按键名删除一项。

8.map.clear():清空 Map。

9.map[Symbol.iterator]():返回遍历所有项的迭代器,每项用一个键和值组成的二元数组表示。

10.map.forEach(f):是对应着Array.prototype.forEach()。

11.map.keys():返回遍历所有键的迭代器。

12.map.values():返回遍历所有值的迭代器。

13.map.entries():返回遍历所有项的迭代器,就像 map[Symbol.iterator]() 。实际上,它们就是同一个方法,不同名字。

WeakMap/WeakSet

跟JAVA的强引用、弱引用类似,都是考虑到对象的内存回收问题,WeakMap/WeakSet与Map/Set几乎一样的行为,除了以下一些限制:

①WeakMap只支持new、 has、 get、 set和delete。

②WeakSet只支持new、 has、 add和delete。

③WeakSet的值和WeakMap的键必须是对象。

④这两种弱集合都不可迭代。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值