javascript - ES6中有没有东西可以收集迭代器,包括最终的返回值?

标签 javascript generator ecmascript-6

如果我有以下生成器:

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

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

最佳答案

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

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);

关于javascript - ES6中有没有东西可以收集迭代器,包括最终的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348424/

相关文章:

javascript - 如何获取数组中最频繁/出现的元素

javascript - 替换为字符串模板,但捕获丢失的变量

javascript - 新文件阅读器(); react 。遍历项目时

javascript - 为什么 for-of 循​​环对于小数组比标准 for 循环更快而对于更大数组更慢?

javascript - JavaScript 生成器中yield 返回值的解析

python生成器垃圾收集

python-3.x - 如何在将输入输入到 keras 中的神经网络时使用两个不同的生成器?

javascript - 如何从动态加载到我的 div 中的外部 html 文件运行 JavaScript 函数?

javascript - 在 Typescript 和 Eslint 中使用别名时找不到模块

javascript - bootstrap 列上的 ngFor 和 ngIf