我正在深入研究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
----编辑----
作为对您评论的回应,它是一个迭代器对象。属于字符串的迭代器对象和属于映射的对象之间没有明显的区别——只有可迭代对象(您的四个示例都属于(和迭代器。