Γεννήτρια μέσω υπολογιζόμενης ιδιότητας στο JavaScript
Στο προηγούμενο μάθημα, αναθέταμε τη γεννήτρια για το αντικείμενο με μια ξεχωριστή εντολή. Έτσι ήταν το αντικείμενό μας:
let obj = {
a: 1,
b: 2,
c: 3,
};
Έτσι ορίζαμε τη γεννήτρια:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
Στην πραγματικότητα, μπορούμε να ξαναγράψουμε τον κώδικά μας
διαφορετικά, μέσω
υπολογιζόμενης ιδιότητας:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};
Ας ελέγξουμε την επανάληψη:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
Ξαναγράψτε τη λύση του προβλήματος από το προηγούμενο μάθημα μέσω υπολογιζόμενης ιδιότητας.