Как итерации массива 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

Здесь все варианты у вас есть:

1. for...of (ES2015)

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))
}