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

How to dynamically access object's property?

本文关键字:属性 对象 访问 何动态 动态      更新时间:2023-09-26

在下面的示例中访问对象的属性时遇到问题。在第三行,我想用变量devNumTemp的值替换数字42,但到目前为止我还没有成功。

做这件事的正确方法是什么?我试过几种选择,但从未得到任何进一步的定义。

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');
   });
};

您可以访问对象的属性,如

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

在尝试访问之前测试字段的存在性被认为是一种很好的做法:

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

通过这种方式,我们可以防止Null指针异常类型的错误。