如何在JavaScript中读取内置iterables中记录的值?

如何在JavaScript中读取内置iterables中记录的值?,javascript,Javascript,我正在深入研究JavaScript中的Iterables和迭代器,希望了解如何读取内置Iterables的Symbol.iterator返回的值 const str = new String() const arr = new Array() const map = new Map() const set = new Set() console.log(str[Symbol.iterator]()) Returns Object [String Iterator] {} console.log

我正在深入研究JavaScript中的Iterables和迭代器,希望了解如何读取内置Iterables的Symbol.iterator返回的值

const str = new String()
const arr = new Array()
const map = new Map()
const set = new Set()

console.log(str[Symbol.iterator]()) Returns Object [String Iterator] {}
console.log(arr[Symbol.iterator]()) Returns Object [Array Iterator] {}
console.log(map[Symbol.iterator]()) Returns [Map Entries] {  }
console.log(set[Symbol.iterator]()) Returns [Set Iterator] {  }

有人能把上述每种情况下的返回值翻译成简单的英文可读格式吗?提前感谢

每种方法的答案都是一样的:返回一个迭代器,然后可以使用它逐步遍历字符串/对象中包含的值

let str = 'Foobar'; //no need for a "constructed" string - a literal is fine
let it = str[Symbol.iterator]();
it.next().value; //"F"
it.next().value; //"o", etc
或对于阵列:

let arr = [5, 7, 9];
let it = arr[Symbol.iterator]();
it.next().value; //5
----编辑----


在回答您的评论时,它是一个迭代器对象。属于字符串的迭代器对象与属于映射的迭代器对象之间没有明显的区别——只有iterables(您的四个示例都属于它)和迭代器。

您希望得到什么“值”?迭代器是一个迭代器,它没有值。我想我该如何向某人解释控制台中记录了什么是我的问题。我知道它会返回一个迭代器,但正如您所看到的,这四个迭代器都有不同的迭代器,我如何用简单的英语表达它们呢?谢谢您的回复。我知道它返回一个迭代器。如果我用英语向某人解释什么是“Object[String Iterator]{}”,我会说什么?它是一个对象,尤其是一个字符串迭代器?如果是这样,映射条目是迭代器吗?我正在寻找简单的英语翻译的返回类型,我猜。