如何循环来自生成器的 JavaScript 迭代器?
How to loop the JavaScript iterator that comes from generator?
假设我们有以下生成器:
var gen = function* () {
for (var i = 0; i < 10; i++ ) {
yield i;
}
};
遍历迭代器的最有效方法是什么?
目前我通过手动检查 done
属性 是否设置为 true
来做到这一点:
var item
, iterator = gen();
while (item = iterator.next(), !item.done) {
console.log( item.value );
}
迭代任何可迭代对象(支持@@iterator 的对象)的最佳方法是使用for..of
,像这样
'use strict';
function * gen() {
for (var i = 0; i < 10; i++) {
yield i;
}
}
for (let value of gen()) {
console.log(value);
}
或者,如果你想要一个数组,那么你可以使用 Array.from
,像这样
console.log(Array.from(gen());
// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
假设我们有以下生成器:
var gen = function* () {
for (var i = 0; i < 10; i++ ) {
yield i;
}
};
遍历迭代器的最有效方法是什么?
目前我通过手动检查 done
属性 是否设置为 true
来做到这一点:
var item
, iterator = gen();
while (item = iterator.next(), !item.done) {
console.log( item.value );
}
迭代任何可迭代对象(支持@@iterator 的对象)的最佳方法是使用for..of
,像这样
'use strict';
function * gen() {
for (var i = 0; i < 10; i++) {
yield i;
}
}
for (let value of gen()) {
console.log(value);
}
或者,如果你想要一个数组,那么你可以使用 Array.from
,像这样
console.log(Array.from(gen());
// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]