代码之家  ›  专栏  ›  技术社区  ›  user2693928

ES6,用于带钥匙和发电机的

  •  0
  • user2693928  · 技术社区  · 7 年前

    [1, 2, 3, 4, 5] - 
    

    我可以循环使用:

    for (let [i, x] of arr.entries()){..}
    

    function* g() {
       yield 1; yield 2; yield 3;
    }
    

    因此,问题是如何得到for和generator循环的索引和键。

    最后,为什么生成器没有方法“entries”,因为它们都是不可数的。

    2 回复  |  直到 7 年前
        1
  •  2
  •   shahin mahmud    7 年前

    实际上,生成器的工作方式与普通的不可迭代数据结构稍有不同。

    function* gen() {
      a = [3, 5, 6]
      for (var i in a){
       yield [i, a[i]]
      }
    }
    
    for (let [i, x] of gen()){
      console.log(i, x)
    }
    
        2
  •  0
  •   ZER0    7 年前

    你基本上想用 Array.prototype.entries

    然后 entries

    function* g() {
      yield 1; yield 2; yield 3;
    }
    
    for (let [i, x] of [...g()].entries()){..}