2011-04-14 74 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