Как итерации массива JSON в JavaScript?
У меня есть этот ниже тип массива. Я хочу повторить этот массив в JavaScript. Как это возможно?
var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
Ответы
Ответ 1
Вы можете сделать это с помощью приведенного ниже кода. Сначала вы получаете массив данных с использованием dictionary.data и назначаете его переменной данных. После этого вы можете повторить его, используя обычный цикл for. Каждая строка будет объектом строки в массиве.
var data = dictionary.data;
for (var i in data)
{
var id = data[i].id;
var name = data[i].name;
}
Вы можете следовать аналогичному подходу, чтобы перебрать массив изображений.
Ответ 2
Там тоже (новый для EcmaScript5):
dictionary.data.forEach(function(item){
console.log(item.name + ' ' + item.id);
});
Тот же подход для изображений
Ответ 3
Что-то вроде этого:
var dictionary = {"data":[{"id":"0","name":"ABC"},{"id":"1", "name":"DEF"}], "images": [{"id":"0","name":"PQR"},{"id":"1","name":"xyz"}]};
for (item in dictionary) {
for (subItem in dictionary[item]) {
console.log(dictionary[item][subItem].id);
console.log(dictionary[item][subItem].name);
}
}
Ответ 4
Используйте обозначения нот и/или скобки для доступа к свойствам объекта и for
loops для итерации массивов:
var d, i;
for (i = 0; i < dictionary.data.length; i++) {
d = dictionary.data[i];
alert(d.id + ' ' + d.name);
}
Вы также можете перебирать массивы с помощью for
.. in
loops; однако свойства, добавленные в Array.prototype
, могут отображаться, и вы можете не обязательно получать элементы массива в правильном порядке или даже в любом последовательном порядке.
Ответ 5
for(index in dictionary) {
for(var index in dictionary[]){
// do something
}
}
Ответ 6
for(var foo in dictionary){
for(var bar in dictionary[foo]){
for(var baz in dictionary[foo][bar]){
// do something...
console.log(foo + ' > ' + baz + ' > ' + dictionary[foo][bar][baz]);
}
}
}
FYI: Arrays <-> Objects
синтаксически сменяется в Javascript.
Ответ 7
var dictionary = {
"data":[{"id":"0","name":"ABC"}, {"id":"1","name":"DEF"}],
"images": [ {"id":"0","name":"PQR"},"id":"1","name":"xyz"}]
};
for (var key in dictionary) {
var getKey = dictionary[key];
getKey.forEach(function(item) {
console.log(item.name + ' ' + item.id);
});
}
Ответ 8
Использование цикла for и foreach
var dictionary = {
data: [{ id: "0", name: "ABC" }, { id: "1", name: "DEF" }],
images: [{ id: "0", name: "PQR" }, { id: "1", name: "xyz" }]
};
dictionary.data.forEach(item => {
console.log(item.id + " " + item.name);
});
for (var i = 0; i < dictionary.data.length; i++) {
console.log(dictionary.data[i].id + " " + dictionary.data[i].name);
}
Ответ 9
Здесь все варианты у вас есть:
var dictionary = {
"data": [
{"id":"0","name":"ABC"},
{"id":"1","name":"DEF"}
],
"images": [
{"id":"0","name":"PQR"},
{"id":"1","name":"xyz"}
]
};
for (const entry of dictionary.data) {
console.log(JSON.stringify(entry))
}