zoukankan      html  css  js  c++  java
  • #######对象迭代器######

    对象迭代器接口

    let obj = {
      key1: "val1",
      key2: "val2",
      key3: "val3",
    };
    
    function cusObjIterator(obj) {
      let metaItemArr = [];
      for (let i in obj) {
        let metaItem = [];
        metaItem[0] = i;
        metaItem[1] = obj[i];
        metaItemArr.push(metaItem);
      }
      let index = 0;
    
      return {
        next() {
          if (index < metaItemArr.length) {
            return { value: metaItemArr[index++], done: false };
          } else {
            return { value: undefined, done: true };
          }
        },
      };
    }
    let iterObj = cusObjIterator(obj);
    console.log(iterObj.next());
    console.log(iterObj.next());
    console.log(iterObj.next());
    console.log(iterObj.next());
    
    

    使用生成器生成对象迭代器

    let obj = {
        key1: 'val1',
        key2: 'val2',
        key3: 'val3'
    }
    
    function* cusGenerator(obj) {
        for (let i in obj) {
            yield [i, obj[i]]
        }
    }
    
    let cusGener = cusGenerator(obj);
    console.log(cusGener);
    for (let i of cusGener) {
        console.log(i);
    }
    
  • 相关阅读:
    bzoj1053(反素数)
    poj1442(对顶堆)
    poj2823(单调队列)
    poj3630(简单tire)
    poj1924(单调栈求最大矩阵)
    最大xor路径(poj3764)
    poj2689
    求n!末尾0的个数
    BigInteger和BigDecimal的基本用法
    大数乘法
  • 原文地址:https://www.cnblogs.com/jaycethanks/p/14650592.html
Copyright © 2011-2022 走看看