Βρόχοι σε γεννήτριες στην JavaScript
Μέσα σε γεννήτριες μπορούμε να χρησιμοποιήσουμε
βρόχους. Σε αυτήν την περίπτωση μπορούμε να βάζουμε τους βρόχους
σε παύση χρησιμοποιώντας την yield. Ας
δούμε ένα παράδειγμα. Θα βάζουμε τον
βρόχο σε παύση σε κάθε επανάληψη:
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Θα πάρουμε έναν επαναληπτή:
let iter = func();
Ας ελέγξουμε τη λειτουργία του επαναληπτή μας:
console.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}
Δημιουργήστε έναν επαναληπτή, κάθε κλήση του οποίου
θα επιστρέφει αριθμούς από το 10
μέχρι το μηδέν.
Δημιουργήστε μια γεννήτρια, που ως παράμετρο θα δέχεται έναν αριθμό. Ας μειώνει κάθε κλήση του επαναληπτή τον αριθμό κατά ένα, μέχρι να επιτευχθεί το μηδέν.
Δημιουργήστε μια γεννήτρια, που ως παράμετρο θα δέχεται έναν αριθμό. Ας μειώνει κάθε κλήση του επαναληπτή τον αριθμό στο μισό και να επιστρέφει το αποτέλεσμα. Και έτσι, μέχρι ο αριθμός να γίνει μικρότερος από το ένα.
Δημιουργήστε έναν επαναληπτή, κάθε κλήση του οποίου θα επιστρέφει την επόμενη δύναμη του δύο.
Δημιουργήστε έναν επαναληπτή, κάθε κλήση του οποίου θα επιστρέφει τον επόμενο αριθμό Fibonacci.