Objetos Aninhados e Arrays em Objetos em 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
, a propriedade languages
contém um array de strings, e a propriedade cities
armazena um array de objetos. Esses arrays podem ser manipulados como qualquer outro, por exemplo, percorrendo-os com um laço for
. Ao iterar um array de objetos, cada elemento representa um objeto separado, permitindo acesso às suas propriedades e métodos:
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.