ES6:迭代器 Iterator

2023-11-13

迭代器是一个统一的接口,也可以叫遍历器
它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现

定义一个数组:

const people = ['Tom', 'Jerry', 'Mario', 'Yoshi'];

在控制台打印它,会发现它具有这样一个属性:
在这里插入图片描述
可以进行这样的操作:

const people = ['Tom', 'Jerry', 'Mario', 'Yoshi'];
const it = people[Symbol.iterator]();

在这里插入图片描述
有两个参数,当遍历到底时,done就会变为true

可迭代的数据结构

主要的可以迭代的集合对象主要为三类:Array,Map,Set
普通的对象是无法迭代的

Array的entries()方法

数组有一个 entries() 方法,它会返回一个迭代器:
在这里插入图片描述
然后就可以使用next方法了:
在这里插入图片描述
值得注意的是:它返回的value是一个数组,分别包含索引和属性值

Array的keys()方法

keys() 方法返回的也是迭代器,而它的value是索引:
在这里插入图片描述

Array的values()方法

values() 方法也会返回迭代器,它的value就是属性值:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6:迭代器 Iterator 的相关文章

随机推荐

  • C语言实现两数相加的三种方法

    笔试题里面看到的 总结一下 分享给需要的小伙伴 一 原始办法 这种方法最直观明了 int add int x int y return x y 二 利用printf的返回值 这个操作鲜为人知 include
  • linux域名解析

    linux域名解析 首先确保你的电脑可以连上网 服务端和客户端能够连通 1 本地解析 优先级高 在服务端中 ping www baidu com 找出ip 在客户端中的浏览器中搜索ip地址就可以上网 但是ip地址记起来非常不方便 所以这里用
  • 网贷风控体系之-风控模型

    网贷风控体系之 风控模型 大数据风控模型主要分为两类 反欺诈模型 交叉验证 聚类分析 黑灰名单 二元好坏模型 准入阶段 授信额度期限利率模型 评分卡模型 LR XGBoost 贷中阶段 风险变化评估 风险预警 贷后阶段 催收时机 催收方法
  • TVM:源码编译安装

    TVM Linux源码编译安装 笔者环境 OS Ubuntu 18 04 CMake 3 10 2 gcc 7 5 0 cuda 11 1 编译安装过程总览 本文将简介 tvm 的编译安装过程 包含两个步骤 通过C 代码构建共享库 设置相关
  • Android - BlueTooth BLE 之 Central 与 Peripheral

    一 前言 Andorid 5 0 之前是无法进行 外围设备开发的 在Android 5 0 API 21 android bluetooth le包下 新增加 Scaner相关类和 Advertiser 相关类 目前最后使用Scanner相
  • 49天精通Java,第5天,Java控制台输入输出语句

    目录 一 控制台输出 二 读取输入 三 格式化输出 1 类型转换字符 2 代码实例
  • 搭建github服务器_【教程篇】使用GitHub+Hexo搭建个人静态博客

    嗨 大家好 你们的万金油管家小e又来了 这次就教大家一些利用GitHub和Hexo本地服务器搭建个人博客的教程 可能教程要好几期 那么这期就先从最最基础的GitHub的注册 以及本地环境的搭建 GitHub仓库的建立等等开始 近年来很多人都
  • 十大应用安全威胁

    常见应用安全威胁 OWASP TOP 10 2013 注入 失效的身份认证和会话管理 跨站脚本攻击 XSS 不安全的直接对象引用 安全配置错误 敏感信息泄露 功能级访问控制缺失 跨站请求伪造 CSRF 使用含有已知漏洞的组件 未验证的重定向
  • 【MyBatis】MyBatis 二级缓存全详解

    1 概述 转载 MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存 什么是 SqlSession 级别的缓存呢 一级缓存的本质是什么呢 以及一级缓存失效的原因 我希望
  • Ubuntu扩展存储合理分配swap分区

    文章目录 前言 1 为Ubuntu扩存 外部存储 1 1修改存储 1 2 初始化分配的磁盘 2 为Ubuntu调整swap分区大小 总结 前言 我们在Ubuntu上运行某些大型游戏或者编译一些工程代码的时候 往往会遇到内存或外部存储不够导致
  • mac 本地运行 http-proxy-middleware ,请求超时

    const http require http customer target http 10 10 111 192 8080 target http user jinfu baohan com changeOrigin true 是否启用
  • JS如何将变量作为一个对象的Key

    JS如何将变量作为一个对象的Key var lastWord last word var a first word hello lastWord world a first word hello a lastWord world a las
  • Mysql进阶优化篇06——分组查询优化、分页查询优化、覆盖索引

    前 言 作者简介 半旧518 长跑型选手 立志坚持写10年博客 专注于java后端 专栏简介 mysql基础 进阶 主要讲解mysql数据库sql刷题 进阶知识 包括索引 数据库调优 分库分表等 文章简介 本文将介绍JOIN语句的底层原理
  • Java中通过反射+自定义注解判断对象中部分属性是否为空,返回为空字段的名称或自定义含义

    场景 若依管理系统前后端分离版基于ElementUI和SpringBoot怎样实现Excel导入和导出 若依管理系统前后端分离版基于ElementUI和SpringBoot怎样实现Excel导入和导出 霸道流氓气质的博客 CSDN博客 在上
  • 【爬虫】python复原网站前端密码加密

    爬虫 python复原网站前端密码加密 前言 前几天学完了尚硅谷的爬虫课程 这几天刚好有一门课出成绩了 我们学校的教务处的查分系统手机无法正常打开 好像只有ios设备用不了 学校的一些学长弄了一个公众号 在公众号里面手机可以很方便的查到分数
  • SMTP服务器地址及端口

    在开发过程中有些场景会用到发送邮件的功能 根据客户需求不同会使用到各种类型的邮箱服务 发送邮件的方法都大同小异 差异大的就是各个邮箱服务的地址及端口 找起来比较麻烦 整理到部分比较常用的可根据需要获取 部分自建的邮箱的SMTP是自定义的 需
  • ARP协议和攻击原理

    转自 https blog 51cto com 13570193 2083332 ARP 在TCP IP协议栈中 最不安全的协议莫过于ARP了 我们经常听到的网络扫描 内网渗透 流量欺骗等等 他们基本上都与ARP有关系 甚至可以说 他们的底
  • 我的ACM生涯——迷失

    自从EC打铁归来已经一星期了了 这一周我都在颓废 似乎又回到以前的自己 没想到 我在集训队呆了2年 还是菜的真实 虽然把所有的原因 都归结到菜上 的确是个逃避问题正解的办法 我决定写点什么总结 算是一个收尾 先来做个回忆 还记得第一次看到自
  • SpringBoot 事件发布监听机制使用、分析、注意点 (一篇到位)

    前言 这一篇从应用角度来跟大伙讲讲 这个 spring 事件监听机制 顺便涉及到那些我认为大家应该一块了解的 我也会展开说说 文章内容 包括不限于 1 对比观察者模式 2 应用场景的分析 3 事件的创建 编码介绍 4 事件如何 发出 5 事
  • ES6:迭代器 Iterator

    迭代器是一个统一的接口 也可以叫遍历器 它的作用是使各种数据结构可被便捷的访问 它是通过一个键为Symbol iterator 的方法来实现 定义一个数组 const people Tom Jerry Mario Yoshi 在控制台打印它