Цикли во генераторите во 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
до нула.
Направете генератор, кој како параметар ќе прифаќа број. Нека секоје повикување на итераторот го намалува бројот за еден, додека не се достигне нула.
Направете генератор, кој како параметар ќе прифаќа број. Нека секоје повикување на итераторот го намалува бројот за половина и го враќа резултатот. И така, додека бројот не стане помал од еден.
Направете итератор, чие повикување ќе ја враќа следната степен на два.
Направете итератор, чие повикување ќе го враќа следниот број од Фибоначи.