Γεννήτριες στο JavaScript

Υπάρχουν ειδικές συναρτήσεις, με τις οποίες μπορούμε να δημιουργούμε τους δικούς μας επαναληπτές. Αυτές οι συναρτήσεις ονομάζονται γεννήτριες. Τα ονόματα αυτών των συναρτήσεων πρέπει να ξεκινούν με αστερίσκο:

javascriptfunction *func() {
  
}

Μέσα στις γεννήτριες χρησιμοποιείται η λέξη-κλειδί yield, που υποδεικνύει τι θα πρέπει να επιστρέψει ο επαναληπτής στο επόμενο κάλεσμα. Για παράδειγμα ας κάνουμε έτσι ώστε το πρώτο κάλεσμα να επιστρέφει 1, το δεύτερο - 2, και το τρίτο - 3:

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

Η γεννήτρια ως αποτέλεσμα επιστρέφει επαναληπτή:

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

Δημιουργήστε έναν επαναληπτή, του οποίου κάθε κάλεσμα θα επιστρέφει αριθμούς από το 5 έως το 1.