Objetos Aninhados e Arrays em Objetos - JavaScript
Em JavaScript, objetos podem conter outros objetos como propriedades. Por exemplo, considere um objeto que representa um país, que tem várias propriedades, incluindo uma para sua capital. A capital, por sua vez, possui suas próprias propriedades, como nome, população e ano de fundação:
const country = {
name: "Alemanha",
language: "alemão",
capital: {
name: "Berlim",
population: 3375000,
year: 1237
}
};
console.log("Capital:", country.capital.name); // Berlim
console.log("População:", country["capital"]["population"]); // 3375000
console.log("Ano de fundação:", country.capital["year"]); // 1237
Para acessar as propriedades desses objetos aninhados, você pode usar a notação de ponto:
console.log("Capital:", country.capital.name); // Berlim
Ou acessá-las como se fossem elementos de um array:
console.log("População:", country["capital"]["population"]); // 3375000
É possível também usar uma abordagem mista:
console.log("Ano de fundação:", country.capital["year"]); // 1237
Arrays também podem ser usados como propriedades de objetos, inclusive arrays de outros objetos:
const country = {
name: "Suíça",
languages: ["alemão", "francês", "italiano"],
capital: {
name: "Berna",
population: 126598
},
cities: [
{ name: "Zurique", population: 378884 },
{ name: "Genebra", population: 188634 },
{ name: "Basel", population: 164937 }
]
};
console.log("Línguas oficiais da Suíça");
for(const lang of country.languages) {
console.log(lang);
}
console.log("\n"); // para separar as línguas das cidades
console.log("Cidades da Suíça");
for(const city of country.cities) {
console.log(city.name);
}
Neste objeto country
languages
cities
for
for(const city of country.cities) {
console.log(city.name);
}
// Ou usando outro tipo de laço for para percorrer todos os elementos do array:
for(let i = 0; i < country.cities.length; i++) {
console.log(country.cities[i].name);
}
Esses exemplos mostram como o JavaScript permite estruturas de dados complexas através do uso de objetos e arrays aninhados, facilitando a organização e manipulação de dados relacionados.