1. 迭代器(内部迭代器和外部迭代器)

  • 迭代模式:

提供一种方法顺序获得集合对象中的各个元素,是一种最简单也是最常见的设计模式,提供特定的接口。

  • 内部迭代器:

本身是函数,定义好内部迭代规则,外部只需一次初始调用 ; 例如:Array.prototypr.forEach 、jQuery.each 等

  • 外部迭代器:

本身是函数,执行迭代对象,迭代对象必须显示调用,调用复杂度增加,但灵活性强

2. 外部迭代器模拟

let arr = [1,2,3]function customIterator(arr2){let i = 0let next = function(){ return {value : arr2[i],done : arr.length > ++i}}return {next}}let iter =  customIterator(arr)console.log( iter.next() )console.log( iter.next() )console.log( iter.next() )// 三次打印结果如下图

3. 迭代器的目的

由于前端的快速发展,使得数据结构发生了变化,产生了特定对象或者 set、map 等数据结构,前期的 for 循环遍历是无法迭代的,由此 lterator 就产生了,部署在各种数据结构上,使这些数据能被迭代操作。(for of、… 、Array.from)

ES6 - lterator相关推荐

  1. ES6 lterator迭代器是个什么东西?有什么用?

    文章目录 Iterator 1 介绍 2 迭代过程 3 可迭代的数据结构 普通对象不可迭代 for...of循环 可迭代的数据结构 可迭代的数据结构 Iterator 1 介绍 Iterator 是 ...

  2. es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器

    文章目录 迭代器 Iterator 用处 (需要自定义遍历数据的时候) 自定义 遍历器 lterator 简单模拟values方法 Array Set Map 默认迭代器接口 entries valu ...

  3. es6相关面试题:1.rest参数;2.new.target;3.object.defineProperty与Proxy的区别;4.Reflect对象作用;5.lterator迭代器;6.async

    文章目录 说说对ES6中rest参数的理解 说说你对new.target的理解 谈谈object.defineProperty与Proxy的区别 ES6中的Reflect对象有什么用? 简单介绍下ES ...

  4. ES6基本的语法(十七) lterator

    迭代模式: 提供一种方法可以顺序获得聚合对象中的各个元素,是一种最简单也是最常见的设计模式,它可以让用户透过特定的接口巡防集合中的每一个元素而不用了解底层的实现. 迭代器简介: 依照与迭代模式的思想而 ...

  5. ES6基本的语法(十六) lterator

    迭代模式: 提供一种方法可以顺序获得聚合对象中的各个元素,是一种最简单也是最常见的设计模式,它可以让用户透过特定的接口巡防集合中的每一个元素而不用了解底层的实现. 迭代器简介: 依照与迭代模式的思想而 ...

  6. [ES6] 细化ES6之 -- 迭代器与生成器

    Symbol Symbol是什么 ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值 Symbol 值通过Symbol函数生成 let symbol = Symbol(); consol ...

  7. ES6 迭代器与生成器(非常详细、容易理解)

    下面是对ES6中迭代器和生成器的整理,非常详细.容易理解,希望可以帮助到有需要的小伙伴~ 文章目录 迭代器是什么 Iterator接口 迭代协议 for...of语句的用法 返回迭代器对象的方法 与f ...

  8. ES6语法笔记(ES6~ES11)

    相关代码和笔记已经同步到gitee,需要自取 链接地址:ES6学习笔记 1.let // let声明变量let a;let b,c,d;let e = 100;let f = 110,g = 'qwe ...

  9. ES6(ECMAScript6)-ES11 从入门到修仙

    ES6:ECMAScript6 一.ES6新特性 1.let变量声明以及声明特性 1.1 let let 关键字用来声明变量,使用 let 声明的变量有以下几个特点: let a; let b,c,d ...

最新文章

  1. wordpress 显示数学公式 (MathJax-LaTeX)
  2. 支持与不支持in-place操作的OpenCV函数汇总
  3. cSpring Boot整合RabbitMQ详细教程
  4. css3层级穿透,css页面滑动穿透的两种解决办法
  5. 梯度下降和delta法则
  6. Nagios监控HP硬件状态
  7. bind 绑定标签的用法
  8. 中国首家干线物流联合创新中心成立,实施自动驾驶数据共享是否可行?...
  9. 基于python/opencv/tesseract使用传统方法的,表格图片版面分析以及印刷体汉字识别(持续更新,学习备份用)
  10. 苹果wifi网速慢怎么办_无线WiFi满格网速却很慢怎么办 如何提升网速【详解】
  11. android wifi速度太慢,手机连上wifi之后速度比4G还慢?设置好DNS让你体验飞一般的感觉...
  12. 读《杀死一只知更鸟To Kill a Mocking Bird》有感
  13. layui实现表格合并单元格,设置不同背景色
  14. 软考程序员 c java 二选一_往年软考程序员试题分析及备考建议
  15. Unity 2D游戏制作
  16. Vue3分页器(Pagination)
  17. CommVault v11新特性和战略解读
  18. Qt电子白板 画板 画笔 毛笔 钢笔 蜡笔 2D/3D图形 音视频播放
  19. 传闻很多企业倒闭了?比亚迪大裁员,中小企业倒闭......
  20. 交叉熵损失函数(softmax分类器)

热门文章

  1. UMLChina建模竞赛第3赛季第3轮(《人月神话》专场)
  2. 解决闲人的简单JS别踩白块(简易版)小游戏啦!
  3. 《Unity 2D与3D手机游戏开发实战》简介
  4. STM32两轮自平衡小车(学习记录)——MPU6050
  5. axureRP7.0基础入门到精通教程
  6. 负边距在布局中的使用 BY:色拉油啊油
  7. 管道过滤器和批处理方式
  8. C++版《天空之城》
  9. 越野赛车 v1.0 怎么用
  10. Android 四大天王-- 三个