遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

Iterator 的作用有三个:

  1. 为各种数据结构,提供一个统一的、简便的访问接口;

  2. 使得数据结构的成员能够按某种次序排列;

  3. ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费。

遍历过程:

  1. 创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。

  2. 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。

  3. 第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。

  4. 不断调用指针对象的next方法,直到它指向数据结构的结束位置。

每一次调用next方法,都会返回数据结构的当前成员的信息。具体来说,就是返回一个包含valuedone两个属性的对象。其中,value属性是当前成员的值,done属性是一个布尔值,表示遍历是否结束。

//obj就是可遍历的,因为它遵循了Iterator标准,且包含[Symbol.

Iterator是什么,有什么作用?相关推荐

  1. 【小白学Java】D20》》》Iterator迭代器 增强for循环

    [友情链接]---–->Java中的各种集合大汇总,学习整理 [友情链接]----–> Collection集合 [友情链接]----–> ArrayList集合及其常用功能 [友情 ...

  2. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  3. Java 集合系列02之 Collection架构

    概要 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Java 集合系列02之 Collection架构 Collection是一个接口,它主要的两个分 ...

  4. java集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  5. 厉害!Java集合框架综述,这篇让你吃透!

    作者:平凡希 来源:cnblogs.com/xiaoxi/p/6089984.html 一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Ja ...

  6. Java 集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  7. Java 集合系列(1): Collection架构

    戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 概要 首先,我们对Collection进行说明.下面先看看Collect ...

  8. 游戏中用到的设计模式

    一:观察者Observer 观察者的设计意图和作用是: 它将对象与对象之间创建一种依赖关系,当其中一个对象发生变化时,它会将这个变化通知给与其创建关系的对象中,实现自动化的通知更新. 游戏中观察者的适 ...

  9. Java 10 常用集合继承关系图

    概述 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用. 类图如下: 1.Iterable与Iterator接口之间的区别 我看到好多网上的文章类图 ...

  10. 关于C++里面使用set_union,set_intersections、set_merge、set_difference、set_symmetric_difference等函数的使用总结

    set里面有set_intersection(取集合交集).set_union(取集合并集).set_difference(取集合差集).set_symmetric_difference(取集合对称差 ...

最新文章

  1. java jdbc datetime_Java JDBC 操作二进制数据、日期时间
  2. 分享代码到GitHub
  3. FastDFS入门步骤
  4. linux自动定时运行的脚本编写
  5. java fly bird小游戏_java swing实现的小游戏flybird源码附带视频配置修改教程
  6. 计算机专业代码834,这六所高校更改专业课目录,其中不乏985高校,多数改为联考!...
  7. android中屏保功能项目,【Android】一段时间不操作弹出【屏保】效果
  8. A - A Dangerous Maze
  9. A站没落了,付费会员成B站破解盈利难题的最优解?
  10. cudnn下载注意事项
  11. 高频电子线路资料强力推荐!
  12. segue 分析小结
  13. JS中的curry化(柯里化)
  14. 联想电脑计算机怎么设置十进制,联想笔记本win10老友系统如何给电池设置充电阈值【图文】...
  15. 2013年微软校园招聘笔试题
  16. PHP复合函数,复合函数中的剥洋葱理论
  17. 【Class 51】【Python实例】自动控制浏览器 登陆QQ邮箱发送邮件,内容为鼠标复制的文本
  18. 《巴黎圣母院》 1.大厅 解读
  19. 给1078万考生批卷的,可能不是个人
  20. java问卷导入excel_Java利用已有的Excel文件导出新的Excel

热门文章

  1. 医疗数据安全 | 健康医疗数据安全服务体系建设思考
  2. 【SpringBoot整合Dubbo和Zookeeper】
  3. Java基础3-循环
  4. 流媒体技术原理与应用
  5. mysql安装出现应用程序无法正常启动(oxc000007b)的解决方案
  6. 超过100项改进 100tv聚好看全新发布
  7. 加拿大政府正式为IT项目管理的成本估计作出规定
  8. android手机获取系统短信sqlite数据库并查看内容
  9. 脉冲响应不变法C语言程序,脉冲响应不变法-数字信号处理总结.ppt
  10. 苹果手机投影_智能手机投屏到投影仪