如何动态访问对象的属性?

时间:2014-10-31 13:41:38

标签: javascript variables object dynamic undefined

我在下面的示例中访问对象'属性时遇到问题。在第三行,我想将数字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');
   });
};

1 个答案:

答案 0 :(得分:1)

您可以访问此对象的属性

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

在尝试访问之前,我们认为这是一个很好的做法,可以测试现场的存在:

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

这样我们就可以防止Null Pointer Exception类型错误。