非手动的迭代器
//生成器
function* methods() { //记住使用 function* 的意思是迭代器
yield 'a'; //yield 进行迭代的数据
yield 'b';
}
let method = methods();
//进行迭代
console.log(method.next())
console.log(method.next())
console.log(method.next())
结果是:
{ value: 'a', done: false }
{ value: 'b', done: false }
{ value: undefined, done: true }
另外一种方式使用
let method = function* (food) {
for (var i = 0; i < food.length; i++) {
yield food[i];
}
}
let demo = method([1, 2, 3]);
console.log(demo.next());
console.log(demo.next());
console.log(demo.next());
结果是:
{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }
网友评论