一、概述

原文地址:http://es6.ruanyifeng.com/#docs/iterator

二、详细

2.1、概念

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

Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是 ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费。

Iterator 的遍历过程。

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

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

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

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

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

2.2、原生具备 Iterator 接口的数据结构如下。

  • Array
  • Map
  • Set
  • String
  • TypedArray
  • 函数的 arguments 对象
  • NodeList 对象

最新文章

  1. BZOJ1024&丝帛搜索
  2. nyoj 14 会场安排问题(贪心专题)
  3. SpringMVC下的Shiro权限框架的使用
  4. PASCAL==CALLBACK==WINAPI==__stdcall
  5. 如何利用jQuery进行简单表单验证
  6. ActiveMQ简单的HelloWorld实例
  7. Java中的面向接口编程
  8. [改善Java代码]养成良好习惯,显式声明UID
  9. HDFS Users Guide--官方文档
  10. C#中的表达式树的浅解
  11. cdoj 791 Frozen Rose-Heads
  12. Java面试题Tomcat的优化经验
  13. jquery $.post 返回json数据
  14. cpp命名空间
  15. Java sax、dom、pull解析xml
  16. Tensorflow实战系列之五:
  17. springboot使用lettuce连接池
  18. 【转】每天一个linux命令(25):linux文件属性详解
  19. 使用HttpGet协议与正则表达实现桌面版的糗事百科
  20. 基于CommonsChunkPlugin,webpack打包优化

热门文章

  1. 【NLP】分词 新词
  2. android 网络图片双缓存
  3. js的微任务和宏任务
  4. 如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器
  5. Spark Gradient-boosted trees (GBTs)梯度提升树
  6. CH 4701 - 天使玩偶 - [CDQ分治]
  7. git修改提交的用户名
  8. log4j.properties 日志文件的详细配置说明
  9. ionic中调用cordova插件upload上传的问题,拍照and调用相册
  10. [knownledge][latex] LaTex入门