Løkker i generatorer i JavaScript

Inde i generatorer kan man bruge løkker. Samtidig kan vi sætte løkker pause med yield. Lad os se på et eksempel. Vi sætter løkken på pause hver iteration:

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

Vi får en iterator:

javascriptlet iter = func();

Lad os tjekke vores iterators funktion:

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

Opret en iterator, hvor hvert kald vil returnere tal fra 10 til nul.

Задание 2

Lav en generator, der som parameter tager et tal. Lad hvert kald af iteratoren reducere tallet med en, indtil nul er nået.

Задание 3

Lav en generator, der som parameter vil tage et tal. Lad hvert kald af iteratoren reducere tallet til halvdelen og returnere resultatet. Og sådan fortsættes, indtil tallet bliver mindre end en.

Задание 4

Lav en iterator, hvor hvert kald vil returnere den næste potens af to.

Задание 5

Lav en iterator, hvor hvert kald vil returnere det næste Fibonacci-tal.