Skip to main content

Επανάληψη 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 που προέρχονται από τον πρόγονο του αντικειμένου.