今日発電機能付きサイクルスルー配列を実装するにはどうすればよい:私はのように、活字体でサイクルスルーアレイを提供するswiftest方法だろうと思いまし
['one', 'two', 'three']
どこ次の値をthree
の後にはone
となり、それはジェネレータ機能のための良い候補だと思いました。しかし、それは私にとってはうまくいかないようです。次のコードで何が問題になっていますか? 、
function* stepGen(steps){
let index = 0;
while (true) {
yield steps[index];
index = (index+1)%steps.length;
}
}
let gen = stepGen(['one', 'two', 'three']); // pass array to make it more reusable
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value);
またあなたものiterableから値を得yield*
を使用することができます。
function* stepGen(){
const steps = ['one', 'two', 'three'];
let index = 0;
if(index < steps.length - 1){
index++;
} else {
index = 0;
}
yield steps[index];
}
let gen = stepGen();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next().value); // should be 'three'
console.log(gen.next().value); // should be 'one'
console.log(gen.next().value);
ジェネレータコードにループが必要です。 – trincot