当前位置: 首页 > Web前端 > HTML

ChetuCubs的自我修养-[ES6]Iterator解析

时间:2023-04-02 21:49:34 HTML

Iterator这真的是一种循环Iterator不是数组,也不是集合,也不是map,它不是一个实体,而是一种访问机制来访问一个对象的接口规范,它为各种数据结构提供了统一的访问机制。任何数据结构只要部署了Iterator接口,就可以完成遍历操作(即按顺序处理数据结构的成员)。Iterator遍历一个数据结构的过程是这样的(比如遍历数组)创建一个指向当前数组起始位置的指针对象。也就是说,遍历器对象本质上是一个指针对象,第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员,此时的返回值为{value:array[0],done:false}第二次调用指针对象的next方法,指针指向数据结构的第二个成员。此时返回值为{value:array[1],done:false}并不断调用指针对象的next方法,直到指向数据结构的结束位置,此时返回值为{value:array[array.length-1],done:true}遍历后,手动为数组['a','b']写一个迭代器接口varitertaor=makeIterator(['a','b']);iterator.next()//{value:"a",done:false}iterator.next()//{value:"b",done:false}iterator.next()//{value:undefined,done:真}functionmakeIterator(array){varnextIndex=0;return{next:function(){returnnextIndex