我想从JavaScript中的生成器的值创建一个数组。
function* sequenceGenerator(minVal, maxVal) {
let currVal = minVal;
while(currVal < maxVal)
yield currVal++;
}
字符串
我想把这些值存储在一个数组中,但是在生成器完成之前使用next()
似乎不是最好的方法(老实说,看起来很难看)。
var it, curr, arr;
it = sequenceGenerator(100, 1000);
curr = it.next();
arr = [];
while(! curr.done){
arr.push(curr.value);
}
型
我可以直接在生成器中创建一个数组吗?如果不能,我可以避免/隐藏循环吗?也许可以使用map
或类似的东西?
先谢了。
5条答案
按热度按时间nkcskrwz1#
一个简短的解决方案可能是:
字符串
关于MDN的文档
xvw2m8pv2#
我找到了另一种方法
字符串
也是有效的。
pftdvrlh3#
你可以这样做
字符串
xkrw2x1b4#
虽然你问了一个非常具体的问题,但我想知道你是否试图解决一个更普遍的问题,即以方便的方式保存生成器的结果。如果去,你可以尝试查看https://github.com/anywhichway/generx。这实际上会让你把生成器当作一个数组,即在它运行后使用数组表示法访问它。
iqjalb3h5#
字符串
使用这个方法来处理生成器。wrapGen是最简单的方法。addIterMthdGen使生成器也是一个可迭代的。