Javascript 3D数组和.split()方法

时间:2015-07-12 17:01:26

标签: javascript arrays split

    function parser(data){
    var saveSections = data.split("\r");
    var parsed = new Array();
    var tempCatch = "";
    var CatchTwo = [];
    //saveSections[0] = saveSections[0].split(",");
    for (var i = 0; i < saveSections.length; i++){
        saveSections[i] = saveSections[i].split(",");
        for (var j = 0; j < saveSections.length; j++){
            tempCatch = saveSections[0][0].split(":");
            //saveSections[0][0] = tempCatch;

        }

    }
    return tempCatch;
}

好的,有问题。在我取消注释

之前,此功能没有问题

//saveSections[0][0] = tempCatch;

当我这样做时,debbuger抛出:

Uncaught TypeError: saveSections[0][0].split is not a function

指向这一行:

tempCatch = saveSections[0][0].split(":");

1 个答案:

答案 0 :(得分:1)

根据您提供的示例数据,问题是您始终将tempCatch分配给2D数组中的第一项(saveSections[0][0]),在第二次迭代中{{1函数失败,因为它是一个数组,而不是一个字符串。

此代码应迭代所有项目:

split()

我认为你需要返回function parser(data){ var saveSections = data.split("\r"); var parsed = []; var tempCatch = ""; var CatchTwo = []; for (var i = 0; i < saveSections.length; i++){ saveSections[i] = saveSections[i].split(","); for (var j = 0; j < saveSections[i].length; j++){ tempCatch = saveSections[i][j].split(":"); saveSections[i][j] = tempCatch; } } return saveSections; } 而不是saveSections,但是从你的实现中有点不清楚。