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

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

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

const 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

Консольный вывод:

Столица: Берлин
Население: 3375000
Год основания: 1237

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

country.capital.name

Либо обращаться к ним как к элементам массивов:

country["capital"]["population"]

Также допустим смешанный вид обращения:

country.capital["year"]

В качестве свойств также могут использоваться массивы, в том числе массивы других объектов:

const country = {

	name: "Швейцария",
	languages: ["немецкий", "французский", "итальянский"],
	capital:{
	
		name: "Берн",
		population: 126598
	},
	cities: [
		{ name: "Цюрих", population: 378884},
		{ name: "Женева", population: 188634},
		{ name: "Базель", population: 164937}
	]
};

// вывод всех элементов из country.languages
console.log("Официальные языки Швейцарии");
for(const lang of country.languages){
  console.log(lang);
}
console.log("\n");  // для разделения языков от городов

// вывод всех элементов из country.cities
console.log("Города Швейцарии");
for(const city of country.cities){
  console.log(city.name);
}

В объекте country имеется свойство languages, содержащее массив строк, а также свойство cities, хранящее массив однотипных объектов.

С этими массивами мы можем работать также, как и с любыми другими, например, перебрать с помощью цикла for. При переборе массива объектов каждый текущий элемент будет представлять отдельный объект, поэтому мы можем обратиться к его свойствам и методам:

for(const city of country.cities){
  console.log(city.name);
}

Либо для перебора мы могли бы использовать другой тип цикла for и также пройтись по всем элементам массива:

for(let i=0; i < country.cities.length; i++){
    console.log(country.cities[i].name);
}

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

Официальные языки Швейцарии
немецкий
французский
итальянский

Города Швейцарии
Цюрих
Женева
Базель
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850