假设我们有以下生成器:
var gen = function* () {
for (var i = 0; i < 10; i++ ) {
yield i;
}
};
循环迭代器的最有效方法是什么?
目前我通过手动检查是否done
属性设置为true
or not:
var item
, iterator = gen();
while (item = iterator.next(), !item.done) {
console.log( item.value );
}
迭代任何可迭代对象(支持 @@iterator 的对象)的最佳方法是使用for..of https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/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 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from, 像这样
console.log(Array.from(gen());
// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)