如何在JavaScript中读取从内置迭代中记录的值



我正在深入研究JavaScript中的Iterables和iterator,并想了解如何读取从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

----编辑----

作为对您评论的回应,它是一个迭代器对象。属于字符串的迭代器对象和属于映射的对象之间没有明显的区别——只有可迭代对象(您的四个示例都属于(和迭代器。

最新更新