js迭代器模式

以前JS原生的集合类型数据结构,只有Array(数组)和Object(对象);

而ES6中,又新增了Map和Set。四种数据结构各自有着自己特别的内部实现,但我们仍期待以同样的一套规则去遍历它们,所以ES6在推出新数据结构的同时也推出了一套统一的接口机制------迭代器(Iterator)。

ES6约定,任何数据结构只要具备Symbol.iterator属性(这个属性就是Iterator的具体实现,它本质上是当前数据结构默认的迭代器生成函数),就可以被遍历------准确地说,是被for...of...循环和迭代器的next方法遍历。 事实上,for...of...的背后正是对next方法的反复调用。

js 复制代码
// 定义一个迭代器对象

const iterator = {

    next() {

      // 返回当前迭代的元素和是否完成迭代的标志

      return { value: 1, done: false };

    }

  };

  // 使用迭代器对象进行迭代

  let result = iterator.next();

  while (!result.done) {

    console.log(result.value);

    result = iterator.next();

  }
相关推荐
jianpeng的工程笔记5 小时前
Colab Kaggle 防断开脚本
javascript·深度学习·kaggle·colab
云小逸5 小时前
C++ 第一阶段:对象、内存与生命周期
开发语言·c++
玖玥拾5 小时前
Lua 基础语法(二)
开发语言·unity·lua
王的宝库5 小时前
GO常用标准库包
开发语言·后端·golang
geovindu6 小时前
python: Face Recognition
开发语言·后端·python·人脸识别
三十而立洋6 小时前
JavaScript 原型链:一张图讲透「对象继承」的底层真相
前端·javascript
平头哥技术团队6 小时前
Day 13 | 调 line-height 和 margin:三处间距让名片页脱离模板感
开发语言·前端·javascript·学习·html5
黑马程序员毕设6 小时前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
平头哥AI6 小时前
Day 13 | 一个函数回两个值:Go 的 error 是从哪冒出来的
开发语言·后端·golang
asdzx676 小时前
Python 实现 PDF 文本查找与高亮标注
开发语言·python·pdf