2014-10-31 53 views
0

我無法在下面的示例中訪問對象的屬性。在第三行,我希望將數字42替換爲變量devNumTemp的值,但到目前爲止我還沒有成功。如何動態訪問對象的屬性?

這樣做的正確方法是什麼?我已經嘗試了幾個選項,但從未得到任何比未定義更多的選項。

function getTempDev(devNumTemp, devNumHum, id, description){ 
    $.getJSON("http://someurl.com/DeviceNum=" + devNumTemp,function(result){ 
    var array = result.Device_Num_42.states; 
    function objectFindByKey(array, key, value) { 
    for (var i = 0; i < array.length; i++) { 
    if (array[i][key] === value) { 
    $("#id").html(description + "<div class='right'>" + array[i].value + "&deg;C" + "&nbsp;&nbsp;&nbsp;(" + someVariable + "%" + ")" + "<br></div>"); 
    } 
    } 
    }; 
    objectFindByKey(array, 'service', 'something'); 
    }); 
}; 
+0

你的意思是由devNumTemp的值取代? – Mironor 2014-10-31 13:47:44

回答

1

您可以查看在對象的屬性,這樣

var array = result["Device_Num_" + devNumTemp].states; 

它認爲是一個很好的做法,以測試領域的所有腦幹試圖訪問它之前:

var array = []; 
    if (result && result["Device_Num_" + devNumTemp]){ 
     array = result["Device_Num_" + devNumTemp].states; 
    } 

這樣,我們防止空指針異常類型錯誤。

+0

只要我回到我的終端,我會試一試。感謝您的快速回答。 – Carnifex 2014-10-31 14:08:01

+0

工程就像一個魅力,再次感謝! – Carnifex 2014-10-31 23:43:10