es6的遍历器

  1. interator 遍历器
    通过指针移位来遍历集合的 next() {value:0,done:true} value:指值 done:指是否遍历结束 true false
{
            let myInterator = (args) => {
                let index = 0;
                return {
                    next() {
                        return { value: args[index++], done: index < args.length ? false : true };
                    }
                }
            }
            //执行该方法
            let arr = [12, 3, 4, 5, 6, 7];
            let inter = myInterator(arr);
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());

        }
  1. es6里面规定部署interator接口遍历器
    Symbol.interator 接口部署遍历器
    部署遍历器:
{
            let obj = {
                name: '11',
                age: "12",
                [Symbol.iterator]() {
                    let that = this;
                    let keys = Object.keys(that);
                    console.log(keys);
                    let index = 0;
                    return {
                        next() {
                            return keys[index] ? {
                                value: that[keys[index++]],
                                done: false
                            } : { value: undefined, done: true }
                        }
                    }
                }
            }
            console.log(obj);
            let interator = obj[Symbol.iterator]();
            console.log(interator.next());
            console.log(interator.next());
            console.log(interator.next());
            console.log(interator.next());
        }
  1. 检测默认具有的 iterator
{
            //Symbol.iterator 
            //数组默认的遍历器名称values 
            let arr = [1, 2, 3, 4];
            console.log(arr);
            let inter = arr[Symbol.iterator]();

            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
            console.log(inter.next());
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值