Цыклы ў генератарах у JavaScript
Унутры генератараў можна выкарыстоўваць
цыклы. Пры гэтым мы можам ставіць цыклы
на паўзу з дапамогай yield. Давайце
паглядзім на прыкладзе. Будзем ставіць
цыкл на паўзу кожную ітэрацыю:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Атрымаем ітэратар:
let iter = func();
Праверым працу нашага ітэратара:
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}
Стварыце ітэратар, кожны вызаў якога
будзе вяртаць лікі ад 10
да нуля.
Зрабіце генератар, які параметрам будзе прымаць лік. Хай кожны вызаў ітэратара памяншае лік на адзінку, пакуль не будзе дасягнуты нуль.
Зрабіце генератар, які параметрам будзе прымаць лік. Хай кожны вызаў ітэратара памяншае лік у два разы і вяртае вынік. І так, пакуль лік не стане менш за адзінку.
Зрабіце ітэратар, кожны вызаў якога будзе вяртаць наступную ступень двойкі.
Зрабіце ітэратар, кожны вызаў якога будзе вяртаць наступны лік Фібаначы.