Ссылка на массив Javascript (формат JSON) с неизвестным ключом массива - PullRequest
1 голос
/ 15 апреля 2011

Как бы вы указали значение в объекте Javascript без ключа?

Итак, учитывая объект:

var JSONdata= [ 
    {"index":"1","var1":1,"var2":2}, 
    {"index":"2","var1":3,"var2":2}, 
    {"index":"3","var1":3,"var2":1}, 
    {"index":"4","var1":2,"var2":1}, 
    {"index":"5","var1":1,"var2":3}, 
]; 

Скажем, я хочу сослаться на значения var1 и var2 в цикле, но имена "var1" и "var2" меняются, а количество переменных также меняется.

Так в псевдокоде:

while ( i < JSONdata.length ) {
   for (j = 1 to Num_variables) {
       Give me the value for varN
   next j
   }
i++
}

Спасибо

Ответы [ 2 ]

1 голос
/ 15 апреля 2011
var JSONdata= [ 
  {"index":"1","var1":1,"var2":2}, 
  {"index":"2","var1":3,"var2":2}, 
  {"index":"3","var1":3,"var2":1}, 
  {"index":"4","var1":2,"var2":1}, 
  {"index":"5","var1":1,"var2":3}
]; 

var fields=[
  "var1",
  "var2"
];

for(var i=0, ii=JSONdata.length; i<ii; i++){
  for(var j=0, jj=fields.length; j<jj; j++){
    $('#hello').html($('#hello').html()+' '+JSONdata[i][fields[j]]);
  }
  $('#hello').html($('#hello').html()+' '+'<br/>');
}

см. Там http://jsbin.com/ufege4/edit

1 голос
/ 15 апреля 2011

Запись obj.propertyName в JavaScript является синтаксическим сахаром для obj['propertyName'] - так что вы можете получить доступ к своим переменным, используя: JSONData[i]['var'+j];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...