Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何动态访问对象';谁的财产?_Javascript_Variables_Object_Dynamic_Undefined - Fatal编程技术网

Javascript 如何动态访问对象';谁的财产?

Javascript 如何动态访问对象';谁的财产?,javascript,variables,object,dynamic,undefined,Javascript,Variables,Object,Dynamic,Undefined,在下面的示例中,我无法访问对象的属性。在第三行,我想用变量devNumTemp的值替换数字42,但到目前为止我还没有成功 正确的方法是什么?我尝试过几种选择,但除了未定义之外,再也没有其他选择了 function getTempDev(devNumTemp, devNumHum, id, description){ $.getJSON("http://someurl.com/DeviceNum=" + devNumTemp,function(result){ var array = re

在下面的示例中,我无法访问对象的属性。在第三行,我想用变量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');
   });
};
函数getTempDev(devNumTemp,devNumHum,id,description){ $.getJSON(“http://someurl.com/DeviceNum=“+devNumTemp,函数(结果){ var数组=result.Device\u Num\u 42.states; 函数objectFindByKey(数组、键、值){ 对于(var i=0;i”; } } }; objectFindByKey(数组、“服务”、“某物”); }); };
您可以像这样访问对象的属性

var array = result["Device_Num_" + devNumTemp].states;
在尝试访问字段之前,最好先测试字段的存在性:

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

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

您的意思是被devNumTemp的值替换?我一回到我的终端就会尝试。谢谢你的快速回答。