迭代器实现
class ArrayIterator {
private array: number[];
private index: number;
constructor(array: number[]) {
this.array = array;
this.index = 0;
}
next(): { value: number | undefined; done: boolean } {
if (this.index < this.array.length) {
const value = this.array[this.index];
this.index++;
return { value, done: false };
} else {
return { value: undefined, done: true };
}
}
}
// 使用迭代器
const array = [1, 2, 3, 4, 5];
const iterator = new ArrayIterator(array);
let result = iterator.next();
while (!result.done) {
console.log(result.value);
result = iterator.next();
}
生成器函数实现
function* generateIntegers() {
let num = 1;
while (true) {
yield num;
num++;
}
}
// 使用生成器
const generator = generateIntegers();
let genResult = generator.next();
while (!genResult.done) {
console.log(genResult.value);
if (genResult.value >= 10) { // 这里假设到10停止,可根据需求修改
break;
}
genResult = generator.next();
}