我在Node.JS v0.11.3和--harmony
標誌中使用Set
。該API工作正常,我可以add
,remove
,clear
等,但我還沒有能夠初始化一個數組的集合。我試圖(通過the MDN page的提示)如何構建一個具有陣列的集合
var mySet = new Set([1, 1, 2]);
我怎麼能轉換成一個數組來一套? MDN是否過期? Node.JS是否實現了該功能?
我在Node.JS v0.11.3和--harmony
標誌中使用Set
。該API工作正常,我可以add
,remove
,clear
等,但我還沒有能夠初始化一個數組的集合。我試圖(通過the MDN page的提示)如何構建一個具有陣列的集合
var mySet = new Set([1, 1, 2]);
我怎麼能轉換成一個數組來一套? MDN是否過期? Node.JS是否實現了該功能?
的的Set
構造v8 implementation還不支持中提到的iterator
和comparator
參數current draft of the Harmony specification的§15.16.1.1和節點使用v8作爲其JavaScript解釋器。
作爲一種創可貼,您可以使用simplesets package。
從我讀到的是我的理解,這是實施新的和實驗性的。有些事情可能無法正常工作。此外,我還注意到很多情況下,直到一段時間後,新功能纔會像預期的那樣運行。如果功能上是你的目標,最好避免這種情況,只需手動添加它們。
你可以試試這個:
樣品會話:
> var sets = require('simplesets')
undefined
> var mySet = new sets.Set([1, 1, 2]);
undefined
> mySet
{ _items: [ 1, 2 ] }
> mySet.size()
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
看着代碼不會告訴? – GameAlchemist
對於新手來說,節點v12確實支持這一點。 – Azmisov
不能在Node V4中使用這個工具 – drekka