Generatoare în JavaScript

Există funcții speciale, cu ajutorul cărora puteți crea proprii iteratori. Astfel de funcții se numesc generatoare. Numele acestor funcții trebuie să înceapă cu un asterisc:

javascriptfunction *func() {
  
}

În interiorul generatoarelor se utilizează cuvântul cheie yield, care indică ceea ce iteratorul ar trebui să returneze la următorul apel. De exemplu, haideți să facem ca prima apelare să returneze 1, a doua - 2, iar a treia - 3:

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

Generatorul returnează ca rezultat un iterator:

javascriptlet iter = func();

Haideți să verificăm funcționarea iteratorului nostru:

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

Creați un iterator, fiecare apel al căruia va returna numere de la 5 la 1.