Node开发(五)Iterator和generator

本文介绍了JavaScript中的Iterator遍历器机制,旨在解决不同集合类型的统一遍历问题,以及Generator函数,它作为一个状态机,常与yield表达式结合使用,实现程序的分部执行。for...of更适合遍历数组,而for...in则适用于遍历对象。
摘要由CSDN通过智能技术生成

一、Iterator

JavaScript到目前为止有四种集合类型,数组、对象、Map、Set。
这四种集合的遍历方案是不一致的,数组、Map和Set 可以使用forEach 和for循环 来进行遍历,对象需要使用for …in 遍历。
若数据存储过程中,不是使用单一的集合而是使用这几种的交叉来完成的,例如:数组中有对象,对象中Set,Set中有map…,这时,就不能使用统一的遍历方式来进行数据遍历。

能不能提供一种统一的遍历方案,来对四种集合进行遍历?
Iterator(遍历器、迭代器),它的诞生就是为了解决这个问题的。它可以为集合提供一种统一的接口机制,来遍历不同的集合数据。

模拟iterator接口:

 //模拟Iterator机制(遍历器)
    function makeIterator(array) {
   
        var nextIndex = 0;//遍历过程中的索引
        return {
   
            next: function () {
   
                if (nextIndex < array.length) {
   
                    return {
    value: array[nextIndex++], done: false };
                }
                return {
    value: undefined, done: true };
            }<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值