Επανάληψη for ... in
Η δομή επανάληψης for ... in
μας επιτρέπει να προσπελάσουμε τις ιδιότητες ενός αντικειμένου.
Η σύνταξη είναι η εξής:
for (let key in object) {
// Κώδικας
}
Όπου:
key
: Η μεταβλητή που θα περιέχει το όνομα της ιδιότητας. Μπορεί να έχει οποιοδήποτε όνομα.object
: Το αντικείμενο που θα επαναλαμβάνουμε.
Παράδειγμα:
const person = {
name: 'John',
age: 30,
city: 'New York',
};
for (let key in person) {
console.log(key); // "name", "age", "city"
}
Στο παραπάνω παράδειγμα, εμφανίζονται τα κλειδιά του αντικειμένου person
.
Μπορούμε να χρησιμοποιήσουμε το κλειδί για να πάρουμε την τιμή της ιδιότητας:
for (let key in person) {
console.log(person[key]); // "John", 30, "New York"
}
Στο παραπάνω παράδειγμα, εμφανίζονται οι τιμές των ιδιοτήτων του αντικειμένου person
.
Η δομή for ... in
προσπελαύνει όλες τις ιδιότητες του αντικειμένου, συμπεριλαμβανομένων και των ιδιοτήτων που προστέθηκαν μετά τη δημιουργία του.
Για παράδειγμα:
const person = {
name: 'John',
age: 30,
city: 'New York',
};
person.country = 'USA';
for (let key in person) {
console.log(key); // "name", "age", "city", "country"
}
Στο παραπάνω παράδειγμα, εμφανίζονται τα κλειδιά του αντικειμένου person
, συμπεριλαμβανομένης και της ιδιότητας country
που προστέθηκε μετά τη δημιουργία του αντικειμένου.
Η δομή for ... in
προσπελαύνει μόνο τις μη-κληρονομημένες ιδιότητες του αντικειμένου. Δηλαδή, αγνοεί τις ιδιότητες που προέρχονται από κάποιο πρόγονο του αντικειμένου.
Παράδειγμα:
const person = {
name: 'John',
age: 30,
city: 'New York',
};
const employee = Object.create(person);
employee.job = 'Developer';
for (let key in employee) {
console.log(key); // "job"
}
Με την μέθοδο Object.create()
, δημιουργήσαμε ένα νέο αντικείμενο employee
που κληρονομεί τις ιδιότητες του αντικειμένου person
.
Στο παραπάνω παράδειγμα, εμφανίζεται μόνο το κλειδί job
του αντικειμένου employee
, αλλά όχι τα κλειδιά name
, age
και city
που προέρχονται από τον πρόγονο του αντικειμένου.