Vitanzi ndani ya Jenereta kwa JavaScript
Ndani ya jenereta unaweza kutumia
vitanzi. Wakati huo huo tunaweza kuweka vitanzi
kwenye pause kwa kutumia yield. Hebu
tuangalie kwa mfano. Tutaweka
kitanzi kwenye pause kila iteresheni:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Tutapata iterator:
let iter = func();
Tuangalie utendakazi wa iterator yetu:
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Unda iterator, kila wito ambao
utarudisha nambari kutoka 10
hadi sifuri.
Tengeneza jenereta, ambao parametri atachukua nambari. Na kila wito iterator upunguze nambari kwa moja, hadia itakapofikia sifuri.
Tengeneza jenereta, ambao parametri atachukua nambari. Na kila wito iterator upunguze nambari kwa nusu na urudishe matokeo. Na hivyo, hadi nambari isiwe chini ya moja.
Unda iterator, kila wito ambao utarudisha nguvu inayofuata ya mbili.
Unda iterator, kila wito ambao utarudisha nambari inayofuata ya Fibonacci.