Javascript 访问ES6集合对象中的字符串

Javascript 访问ES6集合对象中的字符串,javascript,object,Javascript,Object,我正在使用此库查找字符串中的电子邮件地址。 我正在努力获得结果 getEmails(text); //=> Set {'sindresorhus@gmail.com', 'unicorn@rainbow.cake'} typeof getEmails(text); // 'object' 如何访问此对象中的第一个电子邮件地址?您可以通过以下方式循环访问对象中的所有值: var emails = getEmails(); for (email in emails) { consol

我正在使用此库查找字符串中的电子邮件地址。

我正在努力获得结果

getEmails(text); //=> Set {'sindresorhus@gmail.com', 'unicorn@rainbow.cake'}

typeof getEmails(text); // 'object'

如何访问此对象中的第一个电子邮件地址?

您可以通过以下方式循环访问对象中的所有值:

var emails = getEmails();
for (email in emails) {
  console.log(emails[email])
}

自述文件具有误导性。该代码返回电子邮件地址的数组,因此您可以通过索引访问它:

var firstAddress = getEmails(text)[0];

编辑-我错了;注释确实是准确的,因为它返回一个集合实例!我将把这个留在这里,接受我的反对票,以示忏悔

它看起来像
getEmails
实际上返回一个ES6
Set
对象,而不是数组:

收到第一封电子邮件:

// Option 1 (ugly but efficient)
let first = getEmails(text).values().next().value
// Option 2 (pretty but inefficient)
first = [...getEmails(text)][0]

console.log(first)
for (let email of getEmails(text)) {
  console.log(email)
}
迭代所有电子邮件:

// Option 1 (ugly but efficient)
let first = getEmails(text).values().next().value
// Option 2 (pretty but inefficient)
first = [...getEmails(text)][0]

console.log(first)
for (let email of getEmails(text)) {
  console.log(email)
}

IMO,
getEmails
返回
array
@gyre感谢您的评论。你的提议得到了回报undefined@QuentinDel那么,
文本
的具体内容是什么?如果您
console.log(getEmails(text))
会发生什么?我们可以看看text的值吗?这当然是可能的,尽管使用
来。。。通常不赞成在
中使用数组。@Pointy这是一个数组了吗?如果您在链接页上查看实际的代码,是的。示例代码中的注释只是使用了不正确的符号。注释不检查语法:)@BitByte谢谢你的建议,但对我来说似乎不起作用。@QuentinDel你注意到他指向数组的第一个元素了吗?不像你那样指向整个元素吗?太棒了!非常感谢。哇,这真是太棒了,但我花了超过2秒的时间看测试代码,这真是太好了:)我最初犯了同样的错误。必须进行双重拍摄:)