2014-10-31 79 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