迭代器对象

104 阅读1分钟

js实现一个迭代器对象

class Iterator1 {
    [Symbol.iterator] = () => {
        let i = 0;
        return {
            next: () => {
                if (i < 5) {
                    i++;
                    return { value: i, done: false };
                } else {
                    return { value: i, done: true };
                }
            }
        };
    };
}

const iterator1 = new Iterator1();
console.log([...iterator1]);

generator实现一个对象的迭代器

class Iterator2 {
    *[Symbol.iterator]() {
        let i = 0;
        while (i <= 5) yield i++;
    }
}

const iterator2 = new Iterator2();
console.log([...iterator2]);