【问题标题】: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)?
如果我只需要1 和2,我可以使用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);