2015-05-19 3 views
0

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

var all_locations = { 
     'bangalore city' : ['bangalore city'], 
     'bellary division' : ['bellary district' , 'koppala district' , 'davanagere district' , 
           'shimoga district' , 'haveri district'], 
     'mangalore division' : ['dakshina kanada district' , 'chikkamagalur district' , 'upupi district'], 
     'kolar division' : ['kolar district' , 'chikkaballapura district' , 'bangalore rural district' , 
          'citradurga district' , 'tumkur district'], 
     'raichur division' : ['raichur district' , 'yadgir district' , 'gulbarga district' , 'bidar district'], 
     'mysore division' : ['maysore district' , 'mandya district' , 'chamarajanagara district' , 'kodau district' , 
          'hasan district'], 
     'hubli devision' : ['dharwad district' , 'gadag district' , 'belgaum district' , 
          'bagalkote district' , 'bijapur district']             
    } 

Я использование Object.keys для обхода выше литерал объекта, с ниже циклом:

for (var i = 0; i < Object.keys(all_locations).length ; i++) { 
     for (var j = 0; j < all_locations[Object.keys(all_locations)[i]].length ; j++) { 
      console.log(all_locations[Object.keys(all_locations)[i]]) 
     } 
    } 

проблема заключается с этим утверждением, console.log(all_locations[Object.keys(all_locations)[i]]),
я не доступ к свойствам массива внутри, который является то, что я хотеть сделать ?

Я видел эту тему на SO here., но даже после прохождения всех решений в этом ответе (последнее решение Эрика выглядело многообещающим, но все равно не решило мою проблему), так как я могу получить доступ к свойствам внутри :

all_locations[Object.keys(all_locations)[i]] ?? 

EDIT ::

небольшой пример, на 1-й итерации цикла я получаю следующий результат:

Array [ "bangalore city" ] 

что я хочу, это строка "bangalore city".

спасибо.

Alex-z.

ответ

2

@AlexChar имеет право answer (console.log(all_locations[Object.keys(all_locations)[i]][j])), конечно, но вы можете легко избежать таких проблем с помощью функционального стиля итерации массивов и/или с использованием семантических имен для переменных:

Object.keys(all_locations).forEach(function(division){ 
    all_locations[division].forEach(function(district) { 
    console.log(district); 
    }); 
}); 
+0

HTTP : //jsfiddle.net/esgrw9v5/, решение Alex не работает! см. редактирование в моем вопросе, и я попробую ваше решение, но я не уверен, что gonaa вписывается в мой код, теперь, когда я пошел на петли! –

+0

@AlexanderSolonik Я обновил фактическую ошибку в вашем коде. – Tibos

+0

Thankkkkks alot! –

Смежные вопросы