zoukankan      html  css  js  c++  java
  • iterator

    JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。

    这样就需要一种统一的接口机制,来处理所有不同的数据结构。

    遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

    1.数组集合

    1 {
    2     let arr=['hello','world'];
    3     let map = arr[Symbol.iterator]();
    4     console.log(map.next())
    5     console.log(map.next())
    6     console.log(map.next())
    7 }

    2.给对象实现iterator接口,使其能用for of

     1 {
     2     let obj = {
     3         start:[1,2,3],
     4         end:[4,5,6],
     5         [Symbol.iterator](){
     6             let self = this ;
     7             let index = 0 ;
     8             let arr = self.start.concat(self.end);
     9             let len = arr.length;
    10             return{
    11                 next(){
    12                     if(index < len){
    13                         return{
    14                             value:arr[index++],
    15                             done:false
    16                         }
    17                     }else{
    18                         return{
    19                             value:arr[index++],
    20                             done:true
    21                         }
    22                     }
    23                 }
    24             }
    25         }
    26     }
    27     for(let key of obj){
    28         console.log(key)   //1 2 3 4 5 6
    29     }
    30 }
  • 相关阅读:
    eclipse最有用快捷键整理(转)
    Spring IOC的配置使用(转)
    char varchar varchar2 的区别 (转)
    BigDecimal用法详解(转)
    20160126--springaop
    20160125--Spring
    20150122--接口
    Servlet与JSP的区别
    练习
    151127
  • 原文地址:https://www.cnblogs.com/zynkl1314/p/12173074.html
Copyright © 2011-2022 走看看