Løkker i generatorer i JavaScript

Inne i generatorer kan vi bruke løkker. Samtidig kan vi sette løkker på pause ved hjelp av yield. La oss se på et eksempel. Vi setter løkken på pause ved hver iterasjon:

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

Vi får en iterator:

javascriptlet iter = func();

La oss sjekke hvordan iteratoren vår fungerer:

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

Lag en iterator hvor hvert kall returnerer tall fra 10 ned til null.

Задание 2

Lag en generator som tar imot et tall som parameter. La hvert kall på iteratoren redusere tallet med én, inntil null er nådd.

Задание 3

Lag en generator som tar imot et tall som parameter. La hvert kall på iteratoren redusere tallet til halvparten og returnere resultatet. Fortsett til tallet blir mindre enn én.

Задание 4

Lag en iterator hvor hvert kall returnerer neste potens av to.

Задание 5

Lag en iterator hvor hvert kall returnerer neste Fibonacci-tall.