Βρόχοι σε γεννήτριες στην JavaScript

Μέσα σε γεννήτριες μπορούμε να χρησιμοποιήσουμε βρόχους. Σε αυτήν την περίπτωση μπορούμε να βάζουμε τους βρόχους σε παύση χρησιμοποιώντας την yield. Ας δούμε ένα παράδειγμα. Θα βάζουμε τον βρόχο σε παύση σε κάθε επανάληψη:

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

Θα πάρουμε έναν επαναληπτή:

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

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

Задание 2

Δημιουργήστε μια γεννήτρια, που ως παράμετρο θα δέχεται έναν αριθμό. Ας μειώνει κάθε κλήση του επαναληπτή τον αριθμό κατά ένα, μέχρι να επιτευχθεί το μηδέν.

Задание 3

Δημιουργήστε μια γεννήτρια, που ως παράμετρο θα δέχεται έναν αριθμό. Ας μειώνει κάθε κλήση του επαναληπτή τον αριθμό στο μισό και να επιστρέφει το αποτέλεσμα. Και έτσι, μέχρι ο αριθμός να γίνει μικρότερος από το ένα.

Задание 4

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

Задание 5

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