Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Доступ к свойствам объекта JSON (https://javascript.ru/forum/misc/78124-dostup-k-svojjstvam-obekta-json.html)

crabkilla 30.07.2019 13:46

Доступ к свойствам объекта JSON
 
Требуется написать цикл for in, чтобы отобразить в консоли имя каждого свойства первого элемента массива "singles". Цикл написал, но работает он некорректно... Нужна помощь с правкой кода
var albumInfoObj = {
  "title": "Ray of Light",
  "singer": "Madonna",
  "year": 1998,
  "songs": ["Swim", "Little Star", "Frozen", "Skin","The Power of Good-Bye"],
  "recorded": {"studioName": "Larrabee North Studio", "months": 4.5},
  "singles":  [ {"name": "Frozen", "year": 1998},
		{"name": "Nothing Really Matters", "year": 1999},
		{"name": "Ray of Light", "year": 1998} ],
}
var propList = "";
for (var prop in albumInfoObj) {
  propList += albumInfoObj.singles[0][prop] + "<br>";
}
console.log(propList);

Malleys 30.07.2019 13:51

crabkilla,
var albumInfoObj = {
	"title": "Ray of Light",
	"singer": "Madonna",
	"year": 1998,
	"songs": ["Swim", "Little Star", "Frozen", "Skin", "The Power of Good-Bye"],
	"recorded": {
		"studioName": "Larrabee North Studio",
		"months": 4.5
	},
	"singles": [{
		"name": "Frozen",
		"year": 1998
	}, {
		"name": "Nothing Really Matters",
		"year": 1999
	}, {
		"name": "Ray of Light",
		"year": 1998
	}],
}
var propList = [];
for (var prop in albumInfoObj.singles[0]) {
	propList.push(prop);
}
console.log(propList.join("\n"));


Цитата:

Сообщение от crabkilla
Требуется написать цикл for in,

Можно обойтись статичным методом Object.keys
var albumInfoObj = {
	"title": "Ray of Light",
	"singer": "Madonna",
	"year": 1998,
	"songs": ["Swim", "Little Star", "Frozen", "Skin", "The Power of Good-Bye"],
	"recorded": {
		"studioName": "Larrabee North Studio",
		"months": 4.5
	},
	"singles": [{
		"name": "Frozen",
		"year": 1998
	}, {
		"name": "Nothing Really Matters",
		"year": 1999
	}, {
		"name": "Ray of Light",
		"year": 1998
	}],
}

console.log(Object.keys(albumInfoObj.singles[0]).join("\n"));

рони 30.07.2019 13:53

crabkilla,
const albumInfoObj = {
  "title": "Ray of Light",
  "singer": "Madonna",
  "year": 1998,
  "songs": ["Swim", "Little Star", "Frozen", "Skin","The Power of Good-Bye"],
  "recorded": {"studioName": "Larrabee North Studio", "months": 4.5},
  "singles":  [ {"name": "Frozen", "year": 1998},
		{"name": "Nothing Really Matters", "year": 1999},
		{"name": "Ray of Light", "year": 1998} ],
}
let propList = "";
for (const prop of albumInfoObj.singles) {
  propList += prop.name + "\n";
}
console.log(propList);


Часовой пояс GMT +3, время: 08:34.