gpt4 book ai didi

javascript - 如何将简单的迭代器转换为 javascript 生成器

转载 作者:行者123 更新时间:2023-11-30 11:19:47 24 4
gpt4 key购买 nike

CODEPEN

我想全神贯注于生成器,但我就是不明白。

我有一个名为 KeyGen 的简单非生成器迭代器类,我想使用 JS 重写它 generators :

如果这不是生成器应该做的,请发表评论,我将关闭

class KeyGen {
constructor(numOfKeys) {
this.keys = new Array(numOfKeys).fill(0).map((i, index) => index);
this.iteratorCount = 0;
}

keyIterator() {
return {
next: () => this.keys[this.iteratorCount++]
}
}
}

const keyGen = new KeyGen(4);

console.log(keyGen.keyIterator().next());
console.log(keyGen.keyIterator().next());
console.log(keyGen.keyIterator().next());
console.log(keyGen.keyIterator().next());

最佳答案

非常简单,只需声明数组然后yield每个元素:

function* gen(length) {
const keys = Array.from({ length }, (_, i) => i);
for (const key of keys) yield key;
}

const iter = gen(3);
console.log(iter.next().value);
console.log(iter.next().value);
console.log(iter.next().value);

关于javascript - 如何将简单的迭代器转换为 javascript 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com