javascript迭代器怎么实现

技术javascript迭代器怎么实现本篇内容主要讲解“javascript迭代器怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript迭代器怎么实现”吧

本文主要讲解“如何实现javascript迭代器”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何实现javascript迭代器”!

在javascript中,迭代器是一个特殊的对象,它有一些专门为迭代过程设计的专有接口。所有迭代器对象都有next()方法,每次调用都会返回一个结果对象。迭代器保存指向当前集合中值的位置的内部指针。

本教程操作环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。

一、迭代器的定义:

迭代器是一个特殊的对象,它有一些专门为迭代过程设计的专有接口。所有迭代器对象都有next()方法,每次调用都会返回一个结果对象。结果有两个属性:一个是value,表示接下来要返回的值;另一个完成了,这是一个布尔值,当没有更多数据可返回时,它返回true。迭代器还保留一个指向当前集合中值的位置的内部指针,对next()方法的每次调用都将返回下一个可用值。

如果在返回最后一个值后调用next()方法,则返回的对象中完成的属性值为true,属性值包含迭代器最终返回的值。这个返回值不是数据集的一部分,它类似于函数的返回值,是函数调用过程中最后一个向调用者传递信息的方法,如果没有相关数据,则返回undefined。

二、为何会出现迭代器?

背景前提:

我相信您一定使用了for循环,空指针引用也有问题:例如,数组长度只有5,但您的索引已经达到6。轻微的逻辑错误将导致程序无法正常运行。

迭代器想要解决的问题是:

解决或减少在使用for-like循环的过程中访问变量集的错误问题。例如:空指针引用。

举个栗子:

当我们使用for循环遍历集合时,很容易出错,但是如果我们使用像forEach这样的东西,空指针引用的问题就会减少。

array.forEach(元素={ 0

//这时候不用我就可以操作器械包了

});

三、用js实现一个简单的迭代器

functionmyIterator(列表){ 0

leti=0;

返回{

next : function(){ 0

letdone=(I=list . length);

letvalue=!完成了吗?列表[I]:未定义;

返回{

done:done,

值:值

};

}

};

}从函数定义可以看出:

函数返回值是个对象,在对象中,键是下一个,值是函数;

每调用一次next(),i+1,同时返回一个对象,一个物体是一个集合的元素;

至此,相信大家对“如何实现javascript迭代器”有了更深的理解,让我们在实践中去做吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/138488.html

(0)

相关推荐

  • 如何mysql的备份中的xtrabackup

    技术如何mysql的备份中的xtrabackup今天就跟大家聊聊有关如何mysql的备份中的xtrabackup,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。my

    攻略 2021年11月23日
  • 如何使用Chrome DevTools调试JavaScript

    技术如何使用Chrome DevTools调试JavaScript这篇文章主要介绍了如何使用Chrome DevTools调试JavaScript,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有

    攻略 2021年10月30日
  • 怎么写androidinit(android rc文件)

    技术如何进行android启动过程中init.rc文件的浅析本篇文章为大家展示了如何进行android启动过程中init.rc文件的浅析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收

    攻略 2021年12月18日
  • MongoDB 的简单使用

    技术MongoDB 的简单使用 MongoDB 的简单使用MongoDB数据库操作
    Student文档如下:{
    “name”: “zhangsan”,
    “score”: {
    “English”: 69,

    礼包 2021年10月26日
  • 正三棱柱的性质,正三棱柱与直三棱柱有区别吗

    技术正三棱柱的性质,正三棱柱与直三棱柱有区别吗根据三棱柱的基本性质和分类,可知正三棱柱和直三棱柱的区别为底面不同正三棱柱的性质、侧面不同、范围不同,具体区别如下:1、棱柱的底面不同正三棱柱的底面是全等的正三角形,直三棱柱

    生活 2021年10月30日
  • 助学贷款提前还款,国家助学贷款可以提前还款吗

    技术助学贷款提前还款,国家助学贷款可以提前还款吗国家助学贷款经办银行应允许有条件的借款学生提前偿还贷款,借款学生可通过手机银行、网上银行完成提前偿还贷款操作,也可通过经办银行申请办理助学贷款提前还款。对提前偿还的贷款部分

    生活 2021年10月21日