javascript доступ к расширенным массивам объектов JSON

0

Это данные.json, которые я получаю от моего localhost:

[
  {
    "option" : {
      "GroupID" : "2",
      "OptionsID" : "1",
      "group_name" : "Select two:",
      "items" : [
        {
          "item" : {
            "OptionItemID" : "1",
            "item_name" : "item 1"
          }
        },
        {
          "item" : {
            "OptionItemID" : "2",
            "item_name" : "item 2"
          }
        },
        {
          "item" : {
            "OptionItemID" : "3",
            "item_name" : "item 3"
          }
        },
        {
          "item" : {
            "OptionItemID" : "4",
            "item_name" : "item 4"
          }
        },
        {
          "item" : {
            "OptionItemID" : "5",
            "item_name" : "item 5"
          }
        },
        {
          "item" : {
            "OptionItemID" : "6",
            "item_name" : "item 6"
          }
        },
        {
          "item" : {
            "OptionItemID" : "7",
            "item_name" : "item 7"
          }
        },
        {
          "item" : {
            "OptionItemID" : "8",
            "item_name" : "item 8"
          }
        },
        {
          "item" : {
            "OptionItemID" : "9",
            "item_name" : "item 9"
          }
        },
        {
          "item" : {
            "OptionItemID" : "10",
            "item_name" : "item 10"
          }
        }
      ]
    }
  }
] 

В моем HTML файле в тегах моего сценария я использую .getJSON(url,function(data){}. Во время этой функции у меня есть петля .each внутри друг друга, чтобы вызывать и собирать информацию, но она не кажется Бег.

Итак, мои вопросы:

  • Как выполнить итерацию по массиву объектов и внутри этого массива объектов другой набор объектов массива? Я использую для итерации через массив объектов и внутри этого массива объектов другой набор объектов массива?
  • Является .each эффективный способ перебора элементов? (и если да, то кто-нибудь может мне помочь с этим.)
  • 0
    object.option.items.forEach (function (item) {console.log (item);});
  • 3
    Добро пожаловать в ТАК. Чтобы получить ответ, (1) уточните, что вы хотите. (2) Задайте вопрос. - Я не понял, в чем твоя проблема.
Показать ещё 2 комментария
Теги:

1 ответ

0

Следующее будет выполнять итерацию элементов в этом объекте JSON (я использую тест переменной для объекта JSON), отображая каждый атрибут атрибута itemItemID.

var iter;
for(iter = 0; iter < test[0]['option']['items'].length; iter++)
{
    console.log(test[0]['option']['items'][iter]['item'].OptionItemID);
}
  • 3
    Это странно Нет причин не инициировать встроенную переменную iter : for(var iter = 0;... Если вы собираетесь поместить что-либо вне блока for, это будет максимум: var max = item.length; for (var iter = 0; iter < max; iter++)
  • 0
    Честно говоря, я всегда делаю так, как вы, но Дуглас Крокфорд говорит, что это не очень хорошая идея, потому что в JS область действия переменной не ограничивается блоком for, когда вы объявляете его в условиях цикла.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню