Ҳалқаҳо дар генераторҳо дар JavaScript

Дар дохили генераторҳо метавон истифода бурд ҳалқаҳо. Ҳангоми ин мо метавонем ҳалқаҳоро бо ёрии yield дар вазифаи ист қарор диҳем. Биёед нигарем ба мисол. Ҳалқаро дар вазифаи ист қарор медиҳем ҳар як такрор:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

Итератор мегирем:

javascriptlet iter = func();

Кори итератори худро месанҷем:

javascriptconsole.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}
Задание 1

Итератор эҷод кунед, ки ҳар даъвати он рақамҳоро аз 10 то сифр баргардонад.

Задание 2

Генератор созед, ки параметр рақамро қабул кунад. Бигзор ҳар даъват итератор рақамро як воҳид коҳиш диҳад, то он даме ки сифр ба даст ояд.

Задание 3

Генератор созед, ки параметр рақамро қабул кунад. Бигзор ҳар даъват итератор рақамро ду баробар коҳиш диҳад ва натиҷаро баргардонад. Ва ҳамин тавр, то рақам аз як хурдтар шавад.

Задание 4

Итератор созед, ки ҳар даъвати он дараҷаи навбатии дуро баргардонад.

Задание 5

Итератор созед, ки ҳар даъвати он рақами навбатии Фибоначчиро баргардонад.