Вложенные объекты и массивы
Одни объекты могут содержать в качестве свойств другие объекты. Например, есть объект страны, у которой можно выделить ряд свойств. Одно из этих свойств может представлять столицу. Но у столицы мы также можем выделить свои свойства, например, название, численность населения, год основания:
var country = {
name: "Германия",
language: "немецкий",
capital:{
name: "Берлин",
population: 3375000,
year: 1237
}
};
// Берлин
console.log("Столица: " + country.capital.name);
// 3375000
console.log("Население: " + country["capital"]["population"]);
// 1237
console.log("Год основания: " + country.capital["year"]);
Для доступа к свойствам таких вложенных объектов мы можем использовать стандартную нотацию точки:
country.capital.name
Либо обращаться к ним как к элементам массивов:
country["capital"]["population"]
Также допустим смешанный вид обращения:
country.capital["year"]
В качестве свойств также могут использоваться массивы, в том числе массивы других объектов:
var country = {
name: "Швейцария",
languages: ["немецкий", "французский", "итальянский"],
capital:{
name: "Берн",
population: 126598
},
cities: [
{ name: "Цюрих", population: 378884},
{ name: "Женева", population: 188634},
{ name: "Базель", population: 164937}
]
};
// вывод всех элементов из country.languages
document.write("<h3>Официальные языки Швейцарии</h3>");
for(var i=0; i < country.languages.length; i++)
document.write(country.languages[i] + "<br/>");
// вывод всех элементов из country.cities
document.write("<h3>Города Швейцарии</h3>");
for(var i=0; i < country.cities.length; i++)
document.write(country.cities[i].name + "<br/>");
В объекте country
имеется свойство languages
, содержащее массив строк, а также свойство cities
, хранящее массив однотипных объектов.
С этими массивами мы можем работать также, как и с любыми другими, например, перебрать с помощью цикла for
.
При переборе массива объектов каждый текущий элемент будет представлять отдельный объект, поэтому мы можем обратиться к его свойствам и методам:
country.cities[i].name