javascript - 如何读取 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] { }
有人可以将上述每种情况下的返回值翻译成简单的英文可读格式吗?提前致谢
解决方案
每个人的答案都是一样的:你得到了一个迭代器,然后你可以用它来逐步遍历字符串/对象中包含的值。
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
- - 编辑 - -
在回答您的评论时,它是一个迭代器对象。属于字符串的迭代器对象与属于映射的迭代器对象之间没有明显的区别-只有可迭代对象(所有四个示例都属于该对象)和迭代器。
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页