오늘 발전기 기능을 가진주기를 통해 배열을 구현하는 방법은 다음과 같습니다내가 같이 타이프 라이터의 사이클을 통해 배열을 제공하는 가장 신속한 방법이 될 것입니다 무슨 궁금
['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);
또는 당신은 또한 반복 가능한에서 값을 산출 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