javascript中未定义的数组变量

javascript中未定义的数组变量,javascript,undefined,Javascript,Undefined,我的代码中有一个未定义的javascript错误。我找不到问题的原因。 我用ajax加载CSV文件,并用制表符分隔行和列进行解析。 一切正常,但我只有一个未定义的变量 我错过了什么?请告诉我 我的数据文件如下所示: Thành phố Hà Nội 01 Quận Ba Đình 001 Phường Phúc Xá 00001 Phường Thành phố Hà Nội 01 Quận Ba Đình 001 Phường Trúc Bạch 000

我的代码中有一个未定义的javascript错误。我找不到问题的原因。 我用ajax加载CSV文件,并用制表符分隔行和列进行解析。 一切正常,但我只有一个未定义的变量

我错过了什么?请告诉我

我的数据文件如下所示:

Thành phố Hà Nội    01  Quận Ba Đình    001 Phường Phúc Xá  00001   Phường
Thành phố Hà Nội    01  Quận Ba Đình    001 Phường Trúc Bạch    00004   Phường
Thành phố Hà Nội    01  Quận Ba Đình    001 Phường Vĩnh Phúc    00006   Phường
下面是我的javascript代码:

   $(function() {
    var fileName = "data.txt";

    $.ajax({
        url: fileName,
        dataType: 'text',
        success: function(data) {
            var lines = data.split('\n');
            //console.log(lines);

            $('h1').text(lines.length + ' lines');

            //var cols = [];
            var cols = new Array();
            var col_name = new Array();
            //var col_name = [];



            for (var i = 0; i < lines.length; i++) {

                var cells = lines[i].split('\t');

                for (var j = 0; j < cells.length; j++) {

                    cells[j] = $.trim(cells[j]);

                    if(j == 0) col_name[j] = 'state';
                    if(j == 1) col_name[j] = 'code1';
                    if(j == 2) col_name[j] = 'province';
                    if(j == 3) col_name[j] = 'code2';
                    if(j == 4) col_name[j] = 'area';
                    if(j == 5) col_name[j] = 'code3';
                    if(j == 6) col_name[j] = 'street';

                    cols[i] += col_name[j] + '=\'' + cells[j] + '\', ';   

                }

                cols[i] = cols[i].replace(/\,+$/, '');
                cols[i] = cols[i].slice(0, -2);


                str = "INSERT INTO table SET " + cols[i] + ";";
                $('ul').append('<li>' + str + '</li>');

            }

        }
    });

});
正如您看到的结果,每一行上都有未定义的内容

cols[i] += col_name[j] 
//      ^ The undefined comes from the +=
//        cols[i] is undefined here, so 
//        you're adding a string to that
您在sql语句中混合了
update
insert
?或者这不是sql

下面是一个片段,它简化了处理数据的函数。它创建有效的sql insert语句。也许这是有用的

const txt=`Thánh phố 哈恩ội 01区ậ新罕布什尔州ờng Phúc Xá00001 Phường
Thánh phố 哈恩ội 01区ậ新罕布什尔州ờ吴楚瑜ạch 00004 Phường
Thánh phố 哈恩ội 01区ậ新罕布什尔州ờng Vĩnh Phúc 00006 Phường`;
log(processTxt(txt));
函数processTxt(数据){
常量行=data.split(/\n/);
const col_name=[“州”、“代码1”、“省”、“代码2”、“地区”、“代码3”、“街道];
设tableInsertLines=[];
对于(变量i=0;i

.as控制台包装器{top:0;最大高度:100%!important;}
15行插入到未定义的表集中ố 哈恩ội',代码1='01',省='Qu'ậ新罕布什尔州,代码2='001',地区'Ph'432;ờng Phúc Xá,代码3='00001',street='Phường';插入到表集合UnfinedState='Thánh phố 哈恩ội',代码1='01',省='Qu'ậ新罕布什尔州,代码2='001',地区'Ph'432;ờ吴楚瑜ạch',代码3='00004',street='Phường';插入到表集合UnfinedState='Thánh phố 哈恩ội',代码1='01',省='Qu'ậ新罕布什尔州,代码2='001',地区'Ph'432;ờng Vĩnh Phúc',代码3='00006',街道'Phường';包括您在控制台中得到的错误,这将有助于一个LOT。您得到未定义的变量是什么?这是该变量最后一次像单元格[6]一样迭代未定义,就好像您希望在EOT之前解析变量一样?cols[i]-这是我得到未定义的变量。但我已经在上面几行定义了。我只在[0]列上得到了一个未定义的。。其他列也可以。我的第一条注释是代码的结果。正如你所看到的,每一行上都有未定义的内容。
cols[i] += col_name[j] 
//      ^ The undefined comes from the +=
//        cols[i] is undefined here, so 
//        you're adding a string to that