Javascript 如何访问包含点的变量?

Javascript 如何访问包含点的变量?,javascript,Javascript,以下是我的剧本 var err=activityLocal.message; var text=""; var i; for (i = 0; i < err.length; i++) { text+= err[i].message +";"; } document.write(text); 但是输出是未定义的,似乎JS引擎与activityLocal.message变量中的点混淆了。如何解决此错误 如果您的意思是希望使用点作为变量名,那么这是不可能的 如果

以下是我的剧本

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

但是输出是
未定义的
,似乎JS引擎与
activityLocal.message
变量中的点混淆了。如何解决此错误

如果您的意思是希望使用点作为变量名,那么这是不可能的


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

您可以使用array
map
函数在
activityLocal.message
中循环所有消息,该函数将返回
字符串数组,并使用array
join
函数将它们连接起来,如下所示:

var err=[{
“消息”:“数据源'TestDataSource'的状态与服务器'manaed_server_4'上的此操作不兼容。”,
“严重性”:“故障”
}, {
“消息”:“数据源'TestDataSource'处于与服务器'managed_server_3'上的此操作不兼容的状态。”,
“严重性”:“故障”
}];
var text=err.map(函数(e){
返回e.message;
}).加入(“;”);

警报(文本)在您的代码中,变量名有问题,它不应该包含点,这是非法的

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

如果有帮助的话,就去看看那辆车。看起来在数组循环中,值即将出现,问题可能是在html中设置它。

您真的有json吗?一根绳子?或者只是一个数组?activityLocal是一个数组,请使用activityLocal[index].message访问消息。看起来您正在将数组放入activityLocal.message中。您应该通过activityLocal.message[0].message调用第一个元素message。或者根据您的代码进行调整运行
text+=err[i].message+“;”后使用单步调试时,变量
text
的值是多少?为什么要将原始变量activityLocal.message修改为activityLocal\u message,可能无法在原始代码中执行。在问题中,他在变量中明确提到了点,他可以通过activityLocal[“message”]访问该属性我想在不修改原始源代码的情况下回答问题。不更改变量名称是不可能的,因为我没有在java脚本中声明它,它是在服务中的其他地方定义的一个变量,我应该在java脚本中使用它,并且使用
activityLocal[“message”]
会给我相同的输出,即
未定义的
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);
myObj.propName
// is equivalent to
myObj["propName"]