2015-09-12 75 views

回答

24

他們似乎沒有公開List以便從實例化對象訪問。這是從的EcmaScript草案:實例集合

23.2.4屬性

集實例是繼承設置原型屬性普通對象。 Set實例也有一個[[SetData]]內部插槽。

[[SetData]]是值的列表,集保留。

一個可能的解決方案(一個有點貴的)就是抓住一個迭代,然後調用next()前值爲:

var x = new Set(); 
x.add(1); 
x.add({ a: 2 }); 
//get iterator: 
var it = x.values(); 
//get first entry: 
var first = it.next(); 
//get value out of the iterator entry: 
var value = first.value; 
console.log(value); //1 

值得一提的太認爲:

Set.prototype.values === Set.prototype.keys 
+1

Protip:使用'.values()'而不是'.entries()' – Bergi

+0

好,好點。值創建一個迭代器,它沒有'[key,value]',而只是普通的'value'。 – MinusFour

+3

順便說一句,迭代器被認爲是相當*昂貴,這種方法是非常優化的... – Bergi

相關問題