2013-12-26 2 views
1

У меня есть следующие многомерные настройки массива:Перебора яваскрипт многомерного массива, используя ключевые значения

array[key1][key2]["value1"] = "test"; 
array[key1][key2]["value2"] = "test2"; 

Я знаю, чтобы перебирать в первом уровне вы используете:

for(key in array) 
{ 

} 

Как бы перебирать второй уровень? Я пробовал это без каких-либо успехов

for(key in array) 
{ 
    for(key2 in array[key]) 
    { 

    } 
} 

Кроме того, кто-нибудь знает, как я могу сортировать по второму ключу? Я надеюсь, что я не усложнять этот

+0

Если вы цените ответ, не забудьте «принять» лучший, нажав галочку слева от ответа под стрелками голосования. Это также даст вам некоторые очки репутации! Если последует более качественный ответ, вы можете переключиться на него. Если вы не выбрали SO-тур, проверьте здесь: http://stackoverflow.com/tour – m59

ответ

3

for..in для перебора свойств объекта, read more here.

var array = [ 
    [1,2,3], 
    [101,102,103] 
]; 

for (var i=0; i<array.length; ++i) { 
    var subArray = array[i]; 
    for (var j=0; j<subArray.length; ++j) { 
    console.log(subArray[j]); 
    } 
} 

Вы также можете сделать это в современных браузерах, где forEach доступно:

array.forEach(function(item, i) { 
    item.forEach(function(subItem, i) { 
    console.log(subItem); 
    }); 
}); 

Live demo (click).

Относительно сортировки, вы должно быть более ясно, что вы хотите отсортировать - что происходит и что вы хотите.

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