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(":");
答案 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
,但是从你的实现中有点不清楚。