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]);