首页 > 解决方案 > 如何读取 JavaScript 中内置的可迭代对象记录的值?

问题描述

我正在深入研究 JavaScript 中的迭代器和迭代器,并想了解如何读取 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] {  }

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

标签: javascript

解决方案


每个人的答案都是一样的:你得到了一个迭代器,然后你可以用它来逐步遍历字符串/对象中包含的值。

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

- - 编辑 - -

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


推荐阅读