11

我正在玩SetNode.JS v0.11.3 和--harmonyflag。API 工作正常,我可以add, remove,clear等。但是我无法用数组初始化一个集合。我已经尝试过(根据MDN 页面的提示)

var mySet = new Set([1, 1, 2]);

如何将数组转换为集合?MDN过时了吗?Node.JS 是否根本没有实现该功能?

4

4 回答 4

5

构造函数的v8 实现尚不Set支持Harmony 规范当前草案第15.16.1.1 节中提到的iterator和参数,并且 node 使用 v8 作为其 JavaScript 解释器。comparator

作为创可贴,您可以使用simplesets 包

于 2013-07-07T19:54:50.633 回答
2

现在使用提供给构造函数的数组在 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
于 2016-06-03T22:52:02.837 回答
1

根据我的阅读,我的理解是,它的实现是新的和实验性的。有些事情可能无法正常工作。此外,我还注意到许多情况下,新功能在经过一段时间的成熟之后才表现出预期的效果。如果功能是您的目标,最好避免这种情况并简单地手动添加它们。

于 2013-07-07T19:45:02.837 回答
0

你可以试试这个:

示例会话:

> var sets = require('simplesets')
undefined
> var mySet = new sets.Set([1, 1, 2]);
undefined
> mySet
{ _items: [ 1, 2 ] }
> mySet.size()
2
于 2013-07-07T19:46:01.973 回答