2011-04-14 51 views
1

如何引用JavaScript对象中没有键的值?带有未知数组键的引用Javascript数组(JSON格式)

因此,考虑对象:

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++ 
} 

感谢

+0

你想排除'index'属性,但包含每个对象的所有其他属性? – 2011-04-14 22:18:54

+0

你假设Russ是对的。我正在使用这些数据来构建一个图,'index'变量是我的x轴,那么我想循环所有其他变量。下面的答案是正确的。 – Ryan 2011-04-15 13:03:08

回答

1
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

+0

完美答案Avrelian。这允许任何变量名称,而不仅仅是'var1'' var2'等。谢谢,我真的很喜欢那个jsbin.com预览工具。 – Ryan 2011-04-15 13:08:24

1

obj.propertyName符号在JavaScript是obj['propertyName']语法糖 - 所以,你可以通过访问您的增值经销商:JSONData[i]['var'+j];

+0

谢谢杰森。我曾尝试'JSONdata [i] [j]'没有成功,但没有意识到我可以使用数值作为第一个数组对象的维度和字符串值的第二个维度。 – Ryan 2011-04-15 13:06:32