2013-02-18 6 views
1

Предположим, у меня есть массив в моем сценарии и она сделана так:найти значения в многомерном массиве

var detail= {}; 
    detail['i100']=new Array() 

    detail['i100']['ID 4564']= 'John' 
    detail['i100']['ID 4899']= 'Paul' 
    detail['i100']['ID 9877']= 'Andy' 
    detail['i100']['ID 1233']= 'Evan' 

    detail['i25'] = new Array() 

    detail['i25']['ID 89866']= 'Paul s' 
    detail['i25']['ID 87866']= 'Paul' 

Затем я использую этот скрипт для получения значения первой части массива:

$.each(detail, function(vehicle) { 
    console.log(vehicle) 
    }); 

Это дает мне два результата, как и ожидалось (i100 и i25), что я хочу сделать, однако, с помощью эталонного транспортного средства, получить все имена и значения второго измерения – т.е. с помощью i25 Я хочу вернуть ID 89866 и ID 87866. Я пробовал children(), но он просто не работает. Есть ли у кого-нибудь совет, пожалуйста?

+0

возможно дубликат [У меня есть вложенная структура данных/JSON, как я могу получить доступ к определенному значению? ] (http://stackoverflow.com/questions/11922383/i-have-a-nested-data-structure-json-how-can-i-access-a-specific-value) –

+3

Btw, вы действительно не должны использовать массивы с чем угодно, кроме цифровых клавиш. 'detail ['i100'] = new Array()' должен быть 'detail ['i100'] = {}', то есть он должен быть объектом. –

+0

Возможно, это скорее дубликат [Список ключевых слов объекта JavaScript] (http://stackoverflow.com/questions/3068534/getting-javascript-object-key-list). –

ответ

2

Вам нужно запустить еще один на втором измерении.

$.each(detail, function(index,value){ 
    $.each(value, function(i,v) { 
     console.log(v); 
    }); 
}); 

или если вы хотите конкретно назвать один элемент, передать имя значения:

function getByName(name){ 
    $.each(detail[name], function(i,v){ 
     console.log(v); 
    }); 
} 
+0

Я пробовал это, но я получаю эту ошибку. Неподвиг TypeError: не могу использовать оператор «in» для поиска «3» в i100 – Mick

+0

попробуйте сейчас с моими изменениями ... я забыл каждый обратный вызов функция использует (индекс, значение) –

+0

Это было!, я ценю ваше время спасибо – Mick

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