javascript - 构建此字符串时我收到什么未定义的信息? JavaScript

标签 javascript arrays datatables undefined

我正在尝试构建一个字符串,以便将结果放入 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/

相关文章:

Javascript:函数、对象、new ....有点困惑

javascript - 显式呈现 ReCaptcha - Onload 函数未触发

php - 将键数组转换为关联数组

php - 从文件到数组 php

javascript - DataTables 搜索按钮单击而不是输入输入

jquery - 如何在JSP中正确使用JQuery Datatable?

javascript - 如果选中,从纸张复选框中获取值

javascript - 将对象作为参数传递后的未定义属性

javascript - 合并来自两个数组的值

javascript - 数据表不适用于 Firebase