本文主要讲解“如何实现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