2015-09-12 13 views

Odpowiedz

24

Nie wydają się wystawiać listy na dostęp do obiektu instancji. To z ECMAScript zanurzenie:

23.2.4 Właściwości zestawu instancji

Set przypadki są zwykłe przedmioty, które dziedziczą właściwości z prototypem Set. Ustawione wystąpienia mają również wewnętrzne gniazdo [[SetData]].

[[SetData]] jest listą wartości, która trzyma Set.

Możliwym rozwiązaniem (an nieco droższe jeden) jest chwycić iterator, a następnie zadzwonić next() dla pierwszej wartości:

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 

Warto wspomnieć też, że:

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

Protip: Użyj '.values ​​()' zamiast '.entries()' – Bergi

+0

Dobra, dobra uwaga. Values ​​tworzy iterator, który nie ma '[key, value]', ale po prostu wartość 'value'. – MinusFour

+3

Btw, iteratory są uważane za piękne * w * drogich, podejście to jest całkiem optymalne ... – Bergi

Powiązane problemy