MST

星途 面试题库

面试题:TypeScript中迭代器和生成器的基础使用

请用TypeScript实现一个简单的迭代器,用于遍历数组 [1, 2, 3, 4, 5] 并输出每个元素。然后,再实现一个生成器函数,每次生成从1开始的连续整数,直到调用者停止生成。
45.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

迭代器实现

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();
}