我正在尝试构建一个字符串,以便将结果放入 DataTables 表中。
我正在获取一个数组并使用正则表达式来获取它自己的索引中的所有内容,我得到的字符串数组是这样的:
["41.8059016", "-77.0727825", "School Zone",
"41.804526", "-77.075572", "Something",
"41.804398", "-77.0743704", "Some Other Thing",
"41.8073731", "-77.07304", "Pedestrian"]
一个大字符串数组,所有内容都在其自己的索引中。接下来,我使用循环并构建一个字符串,以便将其传递到数据表。结果应该是这样的:
var dataString = [
["41.8059016", "-77.0727825", "School Zone"],
["41.804526", "-77.075572", "Something"],
["41.804398", "-77.0743704", "Some Other Thing"],
["41.8073731", "-77.07304", "Pedestrian"]
];
相反,我得到了这个:
var dataString = undefined["41.8059016", "-77.0727825", "School Zone"],
["41.804526", "-77.075572", "Something"],
["41.804398", "-77.0743704", "Some Other Thing"],
["41.8073731", "-77.07304", "Pedestrian"]
];
这是我从数组构建字符串的循环代码:
for(var i = 0; i < routePoints.length-3; i+=3){
console.log(routePoints);
if(i >= 0 && i < routePoints.length - 4){
dataSetString += '["' + routePoints[i] + '", "' + routePoints[i + 1] + '", "' + routePoints[i + 2] + '"],';
}else if(i == routePoints.length - 3){
dataSetString += '["' + routePoints[i] + '", "' + routePoints[i + 1] + '", "' + routePoints[i + 2] + '"]';
}
}
如果我只是删除“未定义”并粘贴代码,数据表填充得很好,但我什至看不到未定义的来源。感谢您的第二双眼睛!
最佳答案
通常,未定义来自您的初始化。我在这里看不到代码,但您可能有类似的内容:
var 数据集字符串;
相反,您应该始终以空字符串开头:
var dataSetString = "";
至于为什么会发生这种情况。所有未初始化的变量默认为未定义
。当您使用 += 操作时,它会尝试解释您在做什么(如果您有两个数字,它会将它们相加,即两个字符串:连接)。 Undefined 没有好的 +=
操作,因此它使用操作的第二部分您传入的字符串。因此,它会自动将 undefined
转换为字符串并连接新字符串,以 "undefined[blah,blah,blah"
关于javascript - 构建此字符串时我收到什么未定义的信息? JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520889/