我正在玩Set
Node.JS v0.11.3 和--harmony
flag。API 工作正常,我可以add
, remove
,clear
等。但是我无法用数组初始化一个集合。我已经尝试过(根据MDN 页面的提示)
var mySet = new Set([1, 1, 2]);
如何将数组转换为集合?MDN过时了吗?Node.JS 是否根本没有实现该功能?
我正在玩Set
Node.JS v0.11.3 和--harmony
flag。API 工作正常,我可以add
, remove
,clear
等。但是我无法用数组初始化一个集合。我已经尝试过(根据MDN 页面的提示)
var mySet = new Set([1, 1, 2]);
如何将数组转换为集合?MDN过时了吗?Node.JS 是否根本没有实现该功能?
构造函数的v8 实现尚不Set
支持Harmony 规范当前草案第15.16.1.1 节中提到的iterator
和参数,并且 node 使用 v8 作为其 JavaScript 解释器。comparator
作为创可贴,您可以使用simplesets 包。
现在使用提供给构造函数的数组在 v8 中工作正常。我正在使用节点 v6.2.0(v8 版本 5.0.71.47)。
> let mySet = new Set([1,2,3]);
undefined
> mySet;
Set { 1, 2, 3 }
> for ( let key of mySet ) { console.log(key) }
1
2
3
undefined
> mySet.size
3
根据我的阅读,我的理解是,它的实现是新的和实验性的。有些事情可能无法正常工作。此外,我还注意到许多情况下,新功能在经过一段时间的成熟之后才表现出预期的效果。如果功能是您的目标,最好避免这种情况并简单地手动添加它们。
你可以试试这个:
示例会话:
> var sets = require('simplesets')
undefined
> var mySet = new sets.Set([1, 1, 2]);
undefined
> mySet
{ _items: [ 1, 2 ] }
> mySet.size()
2