如何在ES6中获取Set的第一个元素(EcmaScript 2015)

时间:2015-09-12 13:25:36

标签: javascript ecmascript-6

在ES6中,我们如何快速获取元素?

MDN Syntax for Set中,我找不到答案。

1 个答案:

答案 0 :(得分:52)

他们似乎没有公开List可以从instanced对象访问。这来自EcmaScript草案:

  

23.2.4设置实例的属性

     

Set实例是从Set原型继承属性的普通对象。设置实例也有[[SetData]]内部插槽。

[[SetData]]是Set所持有的值列表。

一个可能的解决方案(一个有点昂贵的解决方案)是获取迭代器,然后调用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