【问题标题】:Is there something in ES6 to collect iterator including the final return value?ES6 中有什么东西可以收集迭代器,包括最终的返回值吗?
【发布时间】:2014-08-12 11:02:50
【问题描述】:

如果我有以下生成器:

function* generate() {
    yield 1;
    yield 2;
    return 3;
}

ES6 中是否有内置的东西可以将 [1, 2]3 从中取出(无需手动执行 next)?
如果我只需要12,我可以使用for(of),但我也想获得3

【问题讨论】:

    标签: javascript generator ecmascript-6


    【解决方案1】:

    生成器并非设计为以这种方式工作。如果您想一次获取所有值,那么我几乎看不到使用生成器的意义。如果必须,你可以这样做 -

    function* generate() {
        yield 1;
        yield 2;
        return 3;
    }
    
    var arr = [], k, it = generate();
    do {
       k = it.next();
       arr.push(k.value);
    } while (!k.done);
    
    console.log(arr);
    

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2019-01-21
      • 2020-01-27
      • 2012-10-18
      • 2021-03-08
      • 1970-01-01
      相关资源
      最近更新 更多