如何循环来自生成器的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 ]
问题中while
循环的独立单行替代方案是for
循环。对于针对纯副作用或损耗进行迭代的特殊情况,我们避免了绑定下一个项值的问题,然后不在for-of
解决方案中使用它:
for (let n = iterator.next(); !n.done; n = iterator.next()) {}
相关文章:
- Rails:试图在javascript(Google Charts API)中嵌入一个adv-ruby(each+迭代器
- 在javascript中,从迭代器创建Array
- Javascript中的迭代器和生成器
- javascript中多维数组的迭代器
- Javascript使用for-in循环迭代器来设置变量
- Javascript 替换为 /gi 和数组迭代器
- 如何使用 Javascript 将迭代器索引号附加到数组中的每个项目
- 如何将 Struts 2 中的迭代器列表传递给 JavaScript
- 将自定义迭代器添加到 JavaScript 类
- Javascript 对象调用其他对象粉碎迭代器
- PHP 查询数组到 Javascript Google Maps 迭代器
- 如何循环来自生成器的JavaScript迭代器
- Javascript-如何在带有回调的for循环中使用迭代器
- javascript for..迭代器之谜
- 如何访问Javascript中循环函数的helper中的迭代器
- 如何在JavaScript中创建计数生成器/迭代器级联
- Javascript迭代器建议
- 为什么我们要定义符号.[Symbol]的迭代器.迭代器)?javascript中的可迭代对象
- 如何从迭代器本地链接JavaScript方法
- 迭代器中..的Javascript原型