Цикли в генератори в 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
до нула.
Направете генератор, който параметър ще приема число. Нека всяко извикване на итератора намалява числото с единица, докато не бъде достигната нула.
Направете генератор, който параметър ще приема число. Нека всяко извикване на итератора намалява числото наполовина и връща резултата. И така, докато числото не стане по-малко от единица.
Направете итератор, всяко извикване на който ще връща следващата степен на двойката.
Направете итератор, всяко извикване на който ще връща следващото число на Фибоначи.