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)

相关推荐

  • spring事件机制实例(spring事件机制详解)

    技术Spring的事件机制知识点有哪些这篇文章主要讲解了“Spring的事件机制知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring的事件机制知识点有哪

    攻略 2021年12月20日
  • JScript对象是什么意思

    技术JScript对象是什么意思这篇文章给大家分享的是有关JScript对象是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Jscript 对象是属性和方法的集合。一个方法就是一个函数

    攻略 2021年11月30日
  • win10系统Docker搭建中常见的问题有哪些

    技术win10系统Docker搭建中常见的问题有哪些这篇文章主要讲解了“win10系统Docker搭建中常见的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“wi

    攻略 2021年12月13日
  • 分析DevOps生命周期

    技术分析DevOps生命周期这篇文章主要介绍“分析DevOps生命周期”,在日常操作中,相信很多人在分析DevOps生命周期问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析DevOps生

    攻略 2021年11月5日
  • 【Trie】最大异或对

    技术【Trie】最大异或对 【Trie】最大异或对【题目描述】
    在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少
    输入格式
    第一行输入一个整数N。
    第二行输入N个

    礼包 2021年10月20日
  • 分析mysql系统库日志信息记录表

    技术分析mysql系统库日志信息记录表这篇文章主要介绍“分析mysql系统库日志信息记录表”,在日常操作中,相信很多人在分析mysql系统库日志信息记录表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年11月5日