【问题标题】:How to dynamically access object's property?如何动态访问对象的属性?
【发布时间】:2014-10-31 13:41:37
【问题描述】:

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

【问题讨论】:

  • 你的意思是用devNumTemp的值代替?

标签: javascript variables object dynamic undefined


【解决方案1】:

你可以像这样访问对象的属性

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

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

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

这样我们可以防止空指针异常类型错误。

【讨论】:

  • 我一回到我的终端就尝试一下。感谢您的快速答复。
猜你喜欢
  • 2011-06-15
  • 2011-08-10
  • 2019-09-01
  • 2011-01-18
  • 1970-01-01
  • 2016-10-13
  • 2013-07-21
  • 1970-01-01
相关资源
最近更新 更多