Вложенные объекты и массивы в объектах
Объекты могут содержать в качестве свойств другие объекты. Например,объект страны, у которой можно выделить ряд свойств. Одно из этих свойств может представлять столицу. Но у столицы мы также можем выделить свои свойства, например, название, численность населения, год основания:
var country = {
name: "Германия",
language: "немецкий",
capital:{
name: "Берлин",
population: 3375000,
year: 1237
}
};
console.log("Столица: " + country.capital.name); // Берлин
console.log("Население: " + country["capital"]["population"]); // 3375000
console.log("Год основания: " + country.capital["year"]); // 1237
Output
Для доступа к свойствам таких вложенных объектов мы можем использовать стандартную нотацию точки: country.capital.name Либо обращаться к ним как к элементам массивов: country["capital"]["population"] Также допустим смешанный вид обращения: country.capital["year"] В качестве свойств также могут использоваться массивы, в том числе массивы других объектов:
// декарируем заголовки синим шрифтом document.write('<.style type="text/css">h3{color:blue;}<./style>'); 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/>");Output
В объекте country имеется свойство languages, содержащее массив строк, а также свойство cities, хранящее массив однотипных объектов. С этими массивами мы можем работать также, как и с любыми другими, например, перебрать с помощью цикла for. При переборе массива объектов каждый текущий элемент будет представлять отдельный объект, поэтому мы можем обратиться к его свойствам и методам: country.cities[i].name В итоге браузер выведет содержимое этих массивов: