如何访问包含点的变量?

时间:2016-10-19 07:02:20

标签: javascript

以下是我的剧本

var err=activityLocal.message;
var text="";
var i;
    for (i = 0; i < err.length; i++) {
            text+= err[i].message +";";
}
document.write(text);

此处activityLocal.message的值如下所示:

[{
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
  "severity": "FAILURE"
}, {
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
  "severity": "FAILURE"
}];

但是输出是undefined,看起来JS引擎与activityLocal.message变量中的点混淆了。我该如何解决这个错误?

4 个答案:

答案 0 :(得分:1)

在你的代码中,他们是变量名称的问题,它不应该包含点,这是非法的。

var activityLocal_message = [{
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
  "severity": "FAILURE"
}, {
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
  "severity": "FAILURE"
}];

var err=activityLocal_message;
var text="";
var i;
    for (i = 0; i < err.length; i++) {
            text+= err[i].message +";";
            //console.log(err[i].message);
}
console.log(text);

或者如果你真的想和dot运算符一起使用试试这个

您不能以点表示法使用变量(不使用eval,您不想这样做)。使用点表示法,属性名称基本上是常量。

myObj.propName
// is equivalent to
myObj["propName"]

答案 1 :(得分:0)

您可以使用数组map函数遍历activityLocal.message中将返回strings数组的所有消息,并使用数组join函数连接它们,如下所示:

var err= [{
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
  "severity": "FAILURE"
}, {
  "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
  "severity": "FAILURE"
}];

var text= err.map(function(e) {
  return e.message;
}).join(";");

alert(text);

答案 2 :(得分:0)

如果它有帮助,请参阅plunker。看起来在数组循环中值即将到来,问题可能是在html中设置它。 Plunker

答案 3 :(得分:-4)

如果您的意思是要将点用作变量名,则根本不可能。

如果要将其用作对象变量,可以通过object.variableName访问它。 E. g。假设您的对象名为myObj,并且分配给该对象的变量称为myVar,您可以使用此调用访问它:myObj.myVar。或者您也可以使用for(或现代JavaScript运行时环境中的foreach)循环迭代对象。