2013-09-19 2 views
0

я надеюсь, что мое название несколько правильно, так как я не знаю, как назвать то, что я пытаюсь сделать ...ключа в качестве переменной навигации JSONP объектом

"modifiers":{"agility":{"type":"attribute","displayname":"agi","value":46}} 

является частью JSONP обратного вызова я получаю от here , я пытаюсь войти/доступ к value различного modifiers

это работает, если я использую:

console.log(item1.modifiers.agility.value); /*item1 being item_list[0]*/ 

НО что, если не знаю, содержание modifiers в других вызовах (может быть strength или wisdom или оба). как я к ним обращаюсь?

ближе я получил, это:

for (var x in item1.modifiers){ 
     console.log(x); 
     console.log(item1.modifiers.x.value); 
    } 

x правильно регистрирует в agility но не действует в заявлении для регистрации value

есть способ поставить переменную в «вызов» как это? если не так, как иначе я могу это решить?

ответ

3

Javascript объекты только хэши и могут быть доступны как такие:

item1.modifiers[x].value 

должен работать

Объяснение:

Любой объект в JavaScript это просто словарь/хэш:

var x = { a: 1, b: 2, c: 3 }; 
x.a # = 1; 
x['a'] # = 1; 

Итак, в вашем случае вы можете переписать все это как:

item1['modifiers'][x]['value'] 
+0

Думал, что я собираюсь получить оценку репутации по этому вопросу ... Дарн! –

+0

Большое спасибо ... Я занимаюсь веб-обучением, имею некоторые сумасшедшие пробелы в своих знаниях и затрудняюсь найти решения для вещей, которые я не могу назвать =) – user1952949

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