MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Obiecte încorporate și Array-uri în Obiecte

Obiectele pot conține alte obiecte ca proprietăți. De exemplu, avem un obiect care reprezintă o țară, cu diverse proprietăți. Una dintre aceste proprietăți poate reprezenta capitala. Totuși, pentru capitală, putem defini și alte proprietăți, cum ar fi numele, populația și anul înființării:

const country = {
   name: "Germania",
   language: "germană",
   capital:{
       name: "Berlin",
       population: 3375000,
       year: 1237
   }
};
console.log("Capitala:", country.capital.name); // Berlin
console.log("Populație:", country["capital"]["population"]); // 3375000
console.log("Anul înființării:", country.capital["year"]); // 1237

Rezultatul în consolă:

Capitala: Berlin Populație: 3375000 Anul înființării: 1237

Pentru a accesa proprietățile acestor obiecte înglobate, putem utiliza atât notația punctată, cât și referirea la elemente asemănătoare cu array-ul:

country.capital.name

sau

country["capital"]["population"]

De asemenea, este permisă utilizarea unei combinații de ambele:

country.capital["year"]

Proprietățile pot fi și array-uri, inclusiv array-uri de alte obiecte:

const country = {
   name: "Elveția",
   languages: ["germană", "franceză", "italiană"],
   capital:{
       name: "Bern",
       population: 126598
   },
   cities: [
       { name: "Zürich", population: 378884},
       { name: "Geneva", population: 188634},
       { name: "Basel", population: 164937}
   ]
};

// Afișează toate elementele din country.languages
console.log("Limbi oficiale ale Elveției");
for(const lang of country.languages){
 console.log(lang);
}
console.log("\n");  // pentru separarea limbilor de orașe

// Afișează toate elementele din country.cities
console.log("Orașe din Elveția");
for(const city of country.cities){
 console.log(city.name);
}

În obiectul country, avem o proprietate numită languages, care conține un array de string-uri, precum și o proprietate numită cities, care stochează un array de obiecte similare.

Cu aceste array-uri, putem lucra asemănător ca cu oricare altele, de exemplu, le putem parcurge cu ajutorul unui ciclu for. În timpul parcurgerii array-ului de obiecte, fiecare element curent va reprezenta un obiect separat, astfel încât putem accesa proprietățile și metodele sale:

for(const city of country.cities){
 console.log(city.name);
}

Sau, pentru al parcurge, am putea utiliza un alt tip de buclă for și, de asemenea, să trecem prin toate elementele array-ului:

for(let i=0; i < country.cities.length; i++){
   console.log(country.cities[i].name);
}

În final, browser-ul va afișa conținutul acestor array-uri:

Limbi oficiale ale Elveției germană franceză italiană Orașe din Elveția Zürich Geneva Basel

← Lecția anterioară Lecția următoare →