Generaattorit JavaScriptissä

On olemassa erityisiä funktioita, joiden avulla voit luoda omia iteraattoreita. Tällaisia funktioita kutsutaan generaattoreiksi. Tällaisten funktioiden nimen tulee alkaa tähdellä:

javascriptfunction *func() {
  
}

Generaattoreiden sisällä käytetään avainsanaa yield, joka osoittaa, mikä iteraattorin tulisi palauttaa seuraavalla kutsulla. Esimerkkinä tehdään niin, että ensimmäinen kutsu palauttaa 1, toinen - 2, ja kolmas - 3:

javascriptfunction *func() {
  yield 1;
  yield 2;
  yield 3;
}

Generaattori palauttaa tuloksenaan iteraattorin:

javascriptlet iter = func();

Kokeillaan meidän iteraattorimme toimintaa:

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

Luo iteraattori, jonka jokainen kutsu palauttaa numerot 5 sta 1:een.