iterator 怎么使用甀_Iterator的理解和使用

2023-11-11

es6成员之一的Iterator:

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

Iterator 的作用有三个:

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

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

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

遍历过程:

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

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

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

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

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

//obj就是可遍历的,因为它遵循了Iterator标准,且包含[Symbol.iterator]方法,方法函数也符合标准的Iterator接口规范。

//obj.[Symbol.iterator]() 就是Iterator遍历器

let obj = {

data: [ 'hello', 'world' ],

[Symbol.iterator]() {

const self = this;

let index = 0;

return {

next() {

if (index < self.data.length) {

return {

value: self.data[index++],

done: false

};

} else {

return { value: undefined, done: true };

}

}

};

}

};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iterator 怎么使用甀_Iterator的理解和使用 的相关文章

  • surface pro 4专业版没有64位虚拟机选项的解决办法

    前言 因为surface没办法开bios的虚拟化支持 所以博主也是打电话亲自询问了微软的客服然后得出的结论 这个因为可能微软对自己产品的封锁吧 你装vmware也好 Virualbox也好 都是只有32位系统的 然后呢 也是一样的 选择代数
  • 【QT】——信号和槽

    1 信号和槽的概念 信号和槽是 Qt 特有的信息传输机制 是 Qt 设计程序的重要基础 它可以让互不干扰的 对象建立一种联系 当信号发出时 被连接的槽函数会自动被回调 这就类似观察者模式 当发生了感兴趣的事件 某一个操作就会被自动触发 1
  • 《C++ Primer》学习笔记(十四):重载运算与类型转换

    C Primer 学习笔记 十四 重载运算与类型转换 输入和输出运算符 算术和关系运算符 赋值运算符 下标运算符 递增和递减运算符 成员访问运算符 函数调用运算符 标准库定义的函数对象 可调用对象与function 当一个重载的运算是成员函
  • 做视频剪辑必须学会的几个剪辑软件,你知道哪些?

    现在短视频非常火热 身边70 以上的人或多或少都会使用手机APP快速剪辑视频 但是如果大家想要通过视频剪辑变现 或者想要自己的视频出彩 那么掌握系统的剪辑方法 剪辑软件的使用是必不可少的 今天小编就给大家分享几款我在剪辑视频中会常常用到的软
  • android 验证码短信验证码,Android​短信验证码倒计时验证的2种常用方式

    前言 本文主要介绍的是短信验证码功能 这里总结了两种常用的方式 可以直接拿来使用 看图 计时器 说明 这里的及时从10开始 是为了演示的时间不要等太长而修改的 方法如下 1 第一种方式 Timer Description 自定义Timer
  • thinkcmf5 pc切换手机

    1 在simplewind cmf common php 里找到 获取当前主题名 添加 if cmf is mobile theme config cmf mobile default theme else theme config cmf
  • java 返回function_Java8通过Function获取字段名

    摘要 Java8通过Function获取字段名 不用再硬编码 效果类似于mybatis plus的LambdaQueryWrapper 本文总共三个步骤 1 使Function获取序列化能力 2 通过SFunction获取字段名 3 建一些
  • 【Spring配置文件】Spring定时器的使用及配置

    如何在spring中配置定时任务 spring的定时任务配置分为三个步骤 1 定义任务 2 任务执行策略配置 3 启动任务 1 定义任务
  • OpenCV部署CRNN文字识别

    一 参考链接 1 模型获取及训练 2 github解答 二 模型转化 pytorch 转 ONNX import torch import models crnn as crnn model crnn CRNN 32 1 37 256 mo
  • dotfuscator使用方法

    转载自 http hi baidu com free3people item 0fba87d34091df15d80e4400 dotfuscator如何对 net程序进行混淆保护对于程序代码的保护 网上有很多资料 有的说混淆 有的说加密
  • jsp中使用response.sendRedirect重定向页面传递中文参数

    1 要跳转的jsp页面的书写 2 跳转的jsp页面对参数的获取 使用jsp内置对象
  • Linux read的核心函数generic_file_buffered_read

    内核 5 9 0 流程图 generic file buffered read一种调用路径 cat某个文件触发 0 ondemand readahead mapping 0xffff888005c61340 ra 0xffff8880059
  • 启动Fiddler导致浏览器显示“您的连接不是私密连接”

    浏览器出现如下问题 解决 在浏览器受信任的根证书颁发机构列表中添加fiddler证书 fiddler导出根证书 谷歌浏览器证书管理 受信任的根证书颁发机构列表中添加fiddler证书 注意 如果以上操作后还是无效 就在fiddler先重置根
  • Tracy JS 小笔记 - 运算符,条件语句,循环

    运算符 数学运算和字符串连接 任何数据加上字符串都等于字符串 var a 1 1 a 1 2 a 2a12 var a 1 1 a 1 2 a 2a3 var a aa true a aatrue var a 1 0 a NaN NaN N
  • 基于CentOS系统的网站搭建(入门级)

    准备 使用到的网站 非广告 阿里云 https www aliyun com utm content se 1008364713 宝塔面板 宝塔面板下载 免费全能的服务器运维软件 以阿里云为例 入门选择 轻量级应用服务器 选择服务器配置 选
  • 7-3 两个有序链表序列的合并 (20 分)

    已知两个非降序链表序列S1与S2 设计函数构造出S1与S2合并后的新的非降序链表S3 输入格式 输入分两行 分别在每行给出由若干个正整数构成的非降序序列 用 1表示序列的结尾 1不属于这个序列 数字用空格间隔 输出格式 在一行中输出合并后新
  • Redis之十大类型(三)(下)

    3 6 Redis位图 bitmap 由 0 和 1 表示的二进制位的 bit 数组 介绍 用String类型作为底层数据结构实现的一种统计二值状态的数据类型 位图本质是数组 它是基于String数据类型的按位的操作 该数组由多个二进制位组
  • 机器学习之K-means原理详解、公式推导、简单实例(python实现,sklearn调包)

    目录 1 聚类原理 1 1 无监督与聚类 1 2 K均值算法 2 公式推导 2 1 距离 2 2 最小平方误差 3 实例 3 1 python实现 3 2 sklearn实现 4 运行 可直接食用 1 聚类原理 1 1 无监督与聚类 在这部
  • 图像处理中常用数学知识

    2 3 3 赋范空间 每个实数或复数 都有相对应的绝对值或者模 每一个n维矢量 也都可以定义其长度 如果把 长度 的概念推广到一般抽象空间中的元素上 就可以得到范数这个概念 本节完 2 3 6 希尔伯特空间 定义 在由内积所定义的范数意义下

随机推荐

  • windows的cmd常用命令

    文章目录 一 位 二 cmd基本操作 1 win R启动运行 2 打开cmd 3 运行的命令 三 cmd常用命令 1 功能性命令 2 文件操作 3 shutdown 4 tasklist命令 5 taskkill命令 6 查看日志 四 cm
  • vue项目启动Error: Cannot find module ‘imagemin-gifsicle‘

    Error Cannot find module imagemin gifsicle 依赖没有安装完全 可以删除module 然后重新安装依赖
  • C语言学习:平方-->乘方(m的n方)

    平方 直接用两个数 或变量 相乘就可以表示平方 比如x x 不过如果 需要求m的n次方 就需要用到pow x y 乘方 包括开方 这个库函数了 使用pow x y 这个库函数 需要math h头文件 其中x和y都是双精度浮点 double
  • [FPGA开发]解决正点原子Xilinx下载器无法下载、灯不亮的问题

    问题描述 使用正点原子的Xilinx下载器下载时 电脑无法识别下载器 Vivado无法识别开发版 问题解决 1 检查XIlinx下载器的灯是否亮起 亮灯 说明 解决方法 红灯亮起 下载器可以连接到PC 检查开发版是否供电正常 蓝灯亮起 下载
  • pytorch测试模型时根据不同列别的概率值得到具体的分类

    pytorch 分类任务的教程 https pytorch org tutorials beginner blitz cifar10 tutorial html 主要使用的是 predict torch max out data 1 最后的
  • best ajax lib,BEST Currency Converter

    想提升客户的购物体验 以当地货币显示价格可以省去他们很多不必要的时间 也能提升客户与平台的粘度 该插件具备如下优势 1 轻松添加多种货币 按下按钮即可添加160多种货币 像专业人士一样开始国际销售 并鼓励客户购买 2 自动转换价格 价格会根
  • node.js 读取文件的时候 cmd执行脚本,中文(汉字)打印不出来

    node js 读取文件的时候 cmd执行脚本 中文 汉字 打印不出来 文本详情 输出结果 问题原因 txt编码格式不是UTF 8 解决办法 打开TXT文件 点击 文件 gt 另存为 gt 编码改为UTF 8 保存替换 问题解决
  • 【大数据】Flink 详解(五):核心篇 Ⅳ

    本系列包含 大数据 Flink 详解 一 基础篇 大数据 Flink 详解 二 核心篇 大数据 Flink 详解 三 核心篇 大数据 Flink 详解 四 核心篇 大数据 Flink 详解 五 核心篇 大数据 Flink 详解 六 源码篇
  • 通俗易懂的教你编写自己的webpack loader与plugin

    前言 webpack几乎是目前前端开发者无人不知的打包框架 毕竟无论使用什么开发库 都会想到要使用webpack打包 包括各种脚手架cli工具 大部分也采用了webpack作为其打包工具 本文试图用最简单的代码 仅仅使用命令行工具 代码足够
  • spring data jpa使用limit时,抛QuerySyntaxException unexpected token: limit

    异常重现 jpql语句如下 select g from Entity g where g codeUrl codeUrl ORDER BY g createTime DESC limit 1异常原因 limit是特定于某些数据库 例如 my
  • IDEA设置为中文

    按照如下步骤操作即可 下载对应的语言包 中文语言包下载地址 注意此处下载的版本只能是IDEA版本之前的语言包 下载之后的会报错 将下载好的jar包 放在IDEA目录下的lib目录下 点击File Settings 点击Plugins 然后点
  • matlab相关性分析(皮尔逊,肯德尔,斯皮尔曼)

    代码 clc clear load CRO C3 mat data GPP DT VUT REF EVI NDVI NIRv kNDVI LSWI FPAR TA F VPD F SW IN F rho corr data type pea
  • LeetCode题目笔记——1658. 将 x 减到 0 的最小操作数

    文章目录 题目描述 题目难度 中等 方法一 反向思考 双指针求最长子数组 代码 Python 代码 C 方法二 滑动窗口 代码 总结 我把这篇也归到面试题那一栏 因为觉得这题的思路和思考方式还挺好的 或许能用到其他题上 题目描述 给你一个整
  • [创业之路-74] - 感悟 - 创业是所有因素的机缘组合,缺一不可; 舰船思维 VS 城堡思维.

    感悟 方向 趋势 路径 资助 船只 船长 大副 水手 船员 装备 配套 路径 一个都不能少 只看对方向与趋势 一样葬身在趋势的洪流中 看不对方向与趋势 亦会老死在寂寞孤冷之中 在所有因素中 船只 装配 配套是最表象和最容易触发感官体验的 目
  • 服务器与虚拟技术,云服务器与虚拟化服务器的区别

    虚拟化服务器是让一台服务器变成几台甚至上百台相互隔离的虚拟服务器 不再受限于物理上的界限 而是让CPU 内存 磁盘 I O等硬件变成可以动态管理的 资源池 从而提高资源的利用率 简化系统管理 服务器虚拟化的种类 主要有 一虚多 多虚一 和
  • c++ 之 shared_ptr

    shared ptr shared ptr 是一种智能指针 smart pointer 作用有如同指针 但会记录有多少个 shared ptrs 共同指向一个对象 这便是所谓的引用计数 reference counting 一旦最后一个这样
  • oracle字符串生成唯一数字,在C#中生成唯一的字符串和数字【GUID】转

    当我们想要获得一个唯一的key的时候 通常会想到GUID 这个key非常的长 虽然我们在很多情况下这并不是个问题 但是当我们需要将这个36个字符的字符串放在URL中时 会使的URL非常的丑陋 想要缩短GUID的长度而不牺牲它的唯一性是不可能
  • Spark常见错误剖析与应对策略

    问题一 日志中出现 org apache spark shuffle MetadataFetchFailedException Missing an output location for shuffle 0 原因分析 shuffle分为s
  • 第2章 PyTorch基础(1/2)

    第2章 PyTorch基础 PyTorch是Facebook团队于2017年1月发布的一个深度学习框架 虽然晚于TensorFlow Keras等框架 但自发布之日起 其关注度就在不断上升 目前在GitHub上的热度已超过Theano Ca
  • iterator 怎么使用甀_Iterator的理解和使用

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