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

Последнее обновление: 1.11.2015

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

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

Для доступа к свойствам таких вложенных объектов мы можем использовать стандартную нотацию точки:

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

В итоге браузер выведет содержимое этих массивов:

Вложенные объекты и массивы в объектах JavaScript
Помощь сайту
WebMoney
  • P378451176208
  • Z280152397659
ЮMoney/Яндекс-Деньги
  • 410011174743222
PayPal
  • metanit22@mail.ru
Перевод на карту
  • Номер карты: 4048415020898850