zoukankan      html  css  js  c++  java
  • ES6基础之——迭代器Iterators

    迭的意思就是交换、轮流,代的意思就是代替,迭代就是轮流交换,这里说的Iterators有几个特点:
    1、每次执行的时候会返回一个对象,这个对象里面有两个东西,一个是value,也就是返回来的值;还有就是done,它的值是布尔值,表示还有没有可以迭代的东西,没有了的话,这个done的值就是true,表示完成了迭代
    {value:xx,done:true/false}
    2、另外Iterators里还应该有next的方法,每次执行方法的时候会返回一个对象,对象里面的东西就是value和done这两个属性,如果没有迭代的东西的话,执行next方法以后,value的值就会变为undefined,done的值会变为ture
    在ES6里面有一个叫做Generators的东西,可以去生成我们刚才说的这个迭代器,在介绍Generators之前,我们先手工创建一个迭代器,这个迭代器可以是一个函数,例子:
    function chef(foods){ //foods:数组参数
    let i = 0; //定义索引值的变量
    return {
      next(){
        //定义每次执行next的方法的时候返回来的value还有done的值
        let done= (i>=foods.length); //done的值:有迭代的东西的时候是false,没有的话就是ture
        let value = !done?foods[i++]:undefined; //value的值:先问下done的值,如果这个done的反向值是true的话,value的值就会是当前这次循环的时候,这个foods里面某一个项目的值;如果done的值是ture的话,value的值就会是undefined
        return{
          value:value,
          done:done
        }  
      }
    }
    //运用迭代器
    let zhangsan=chef(['tomato','eggs']);
    console.log(zhangsan.next()); //{value:'tomato',done:false}
    console.log(zhangsan.next()); //{value:'eggs',done:false}
    console.log(zhangsan.next()); //{value:undefined,done:true}
    

      

  • 相关阅读:
    jekins 实现Django项目的自动部署(ubuntu16.04,python2.7,django1.11)
    Ubuntu16.04 安装 Django
    小米笔记本 air 12.5寸 支持硬盘参数
    editplus5激活码
    jmeter UDV
    c语言 快速排序
    html禁止文本输入框记录输入记录,单击input出现输入过的记录
    python pstats ,profile 性能分析
    python profile性能分析
    python 获取本地语言和编码的代码
  • 原文地址:https://www.cnblogs.com/fe-cherrydlh/p/11112141.html
Copyright © 2011-2022 走看看