// 体验一下 迭代器 手动实现
function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
if(nextIndex < array.length) {
return { value: array[nextIndex++], done: false }
} else {
return { done: true }
}
}
}
}
let it = makeIterator([1, 2, 3]);
console.log(it.next()); // {value: 1, done: false}
console.log(it.next()); // {value: 2, done: false}
console.log(it.next()); // {value: 3, done: false}
console.log(it.next()); // {done: true}
// 生成器 generator ,生成器就是一个 自带迭代器的函数
function* printOneThree() {
yield 1;
yield 2;
yield 3;
}
let A = printOneThree()
console.log('生成器', A.next()) // { value: 1, done: false }
console.log('生成器', A.next()) // { value: 2, done: false }
console.log('生成器', A.next()) // { value: 3, done: false }
console.log('生成器', A.next()) // { value: undefined, done: true }