我的编程空间,编程开发者的网络收藏夹
学习永远不晚

js中Iterator是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

js中Iterator是什么

这篇文章将为大家详细讲解有关js中Iterator是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Iterator是什么,有什么作用?

Iterator是理解第61条的先决知识,也许是我IQ不够Iterator和Generator看了很多遍还是一知半解,即使当时理解了,过一阵又忘得一干二净。。。

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

Iterator语法:

const obj = {
    [Symbol.iterator]:function(){}}

[Symbol.iterator]属性名是固定的写法,只要拥有了该属性的对象,就能够用迭代器的方式进行遍历。

迭代器的遍历方法是首先获得一个迭代器的指针,初始时该指针指向第一条数据之前,接着通过调用 next 方法,改变指针的指向,让其指向下一条数据 每一次的 next 都会返回一个对象,该对象有两个属性

  • value 代表想要获取的数据

  • done 布尔值,false表示当前指针指向的数据有值,true表示遍历已经结束

Iterator 的作用有三个:

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

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

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

遍历过程:

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

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

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

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

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

let arr = [{num:1},2,3]let it = arr[Symbol.iterator]() 
// 获取数组中的迭代器console.log(it.next()) 	
// { value: Object { num: 1 }, done: false }console.log(it.next()) 
	// { value: 2, done: false }console.log(it.next()) 
		// { value: 3, done: false }console.log(it.next())
		 	// { value: undefined, done: true }

关于“js中Iterator是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

js中Iterator是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中的iterator和"lazy iterator"区别是什么

这篇文章主要介绍了python中的iterator和"lazy iterator"区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中的iterator和"lazy iterator"区别是什
2023-07-05

Java中Iterator与ListIterator迭代的区别是什么

Java中Iterator与ListIterator迭代的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。迭代的时候可以修改数据吗?答,Iterator迭代的时候可
2023-06-20

js中什么是同步

本篇内容主要讲解“js中什么是同步”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js中什么是同步”吧!1、如果调用者在函数返回时能够获得预期结果(即获得预期返回值或看到预期效果),则该函数同步。
2023-06-25

java迭代器iterator指的是什么意思

这篇文章给大家分享的是有关java迭代器iterator指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Que
2023-06-14

php迭代器iterator的作用是什么

这篇文章主要介绍“php迭代器iterator的作用是什么”,在日常操作中,相信很多人在php迭代器iterator的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php迭代器iterator的作用
2023-06-20

js中location.search的作用是什么

在JavaScript中,`location.search`用于获取URL中的查询参数部分。查询参数是URL中问号(?)后面的部分,包含一个或多个键值对,每个键值对由等号(=)连接。例如,对于以下URL:```https://www.exa
2023-09-15

js中dialog的用法是什么

在JavaScript中,dialog用于显示一个对话框,与用户进行交互或显示一些信息。它提供了一种简单的方式来展示模态对话框,以便用户注意并与之交互。Dialog的用法通常包括以下步骤:1. 创建一个dialog元素:```javascr
2023-09-17

JS中console.log的用法是什么

console.log()是JavaScript中用于在控制台输出信息的方法。它接受一个或多个参数,并将它们打印到浏览器的控制台中。console.log()常用于调试和验证代码中的变量值、对象、数组等。使用方法如下:1. 输出一个字符串:
2023-09-12

JS中document.all的作用是什么

在JavaScript中,document.all是一个特殊的属性,它是一个对象,用于引用当前文档中的所有HTML元素。它返回一个HTMLCollection对象,包含了文档中所有的HTML元素。使用document.all可以通过元素的索
2023-09-13

js中offsetParent的作用是什么

在JavaScript中,offsetParent属性用于获取一个元素的最近的“定位(positioned)”祖先元素。定位元素是使用CSS属性position设置为relative、absolute、fixed或sticky的元素。off
2023-09-29

js中document.all的用法是什么

在JavaScript中,`document.all`是一个表示文档中所有元素的集合的特殊对象。它返回一个类似数组的对象,其中包含文档中的所有元素,并使用元素的id作为属性名。使用`document.all`可以按照以下方式使用:1. 通过
2023-09-21

js中event.srcElement的作用是什么

在Javascript中,event.srcElement是一个只读属性,用于返回触发事件的元素(即事件的目标)。它主要用于处理事件触发的元素对象,以便对其进行操作,例如修改样式、获取或修改元素的属性等。在过去的IE浏览器中,event.s
2023-09-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录