offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsSpItGL 64 of 294 menu

Циклы в генераторах в 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 до нуля.

Сделайте генератор, который параметром будет принимать число. Пусть каждый вызов итератора уменьшает число на единицу, пока не будет достигнут ноль.

Сделайте генератор, который параметром будет принимать число. Пусть каждый вызов итератора уменьшает число в два раза и возвращает результат. И так, пока число не станет меньше единицы.

Сделайте итератор, каждый вызов которого будет возвращать следующую степень двойки.

Сделайте итератор, каждый вызов которого будет возвращать следующее число Фибоначчи.

enru