Вложенные объекты и массивы в объектах

Объекты могут содержать в качестве свойств другие объекты. Например,объект страны, у которой можно выделить ряд свойств. Одно из этих свойств может представлять столицу. Но у столицы мы также можем выделить свои свойства, например, название, численность населения, год основания:

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 В итоге браузер выведет содержимое этих массивов: