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();

  }
相关推荐
chushiyunen8 分钟前
python numpy包的使用
开发语言·python·numpy
小邓睡不饱耶8 分钟前
Python多线程爬虫实战:爬取论坛帖子及评论
开发语言·爬虫·python
毕设源码-邱学长11 分钟前
【开题答辩全过程】以 基于 java web 的篮球赛事管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
进击的尘埃17 分钟前
用了大半年 Claude Code,我总结了 12 个真正改变工作流的配置技巧
javascript
luanma15098017 分钟前
Laravel 8.X重磅特性全解析
前端·javascript·vue.js·php·lua
zhangren0246821 分钟前
PHP vs C++:从Web脚本到系统编程的终极对比
开发语言·c++·php
聆风吟º23 分钟前
【C标准库】深入理解 C 语言memmove函数:安全内存拷贝的利器
c语言·开发语言·memmove·库函数
临溟夜空的繁星25 分钟前
C++STL—— list
开发语言·c++·list
lsx20240631 分钟前
Ruby JSON处理指南
开发语言
kyriewen34 分钟前
为什么我的代码在测试环境跑得好好的,一到用户电脑就崩?原来凶手躲在地址栏旁边
前端·javascript·chrome