Это функция для раскола responseText
с сервера.Я прокомментировал структуры данных для ясности.
function chopUpResponse(serverResponse)
{
// serverResponse: ("a|b|c@d|e|f@g|h|i")
console.log("chopUpResponse called");
var ranges = [];
var firstSplit = [];
var secondSplit = [];
firstSplit = serverResponse.split("@");
console.log("firstSplit: " + firstSplit);
// result: ("a|b|c", "d|e|f", "g|h|i")
for (var i=0; i<firstSplit.length; i++)
{
secondSplit = secondSplit.concat(firstSplit[i].split("|"));
console.log("secondSplit: " + secondSplit);
// desired: ("a","b","c","d","e","f","g","h","i")
}
for (var j=0; j<firstSplit.length; j++)
{
console.log("j: "+j);
for (var k=0; k<3; k++)
// would be nice to generate the '3' dynamically from the @ delimiter
{
console.log("k: "+k);
ranges[j,k] = secondSplit[j+1*k];
// the +1 so we're not * by zero!
// j+1*k should equal secondSplit.length...
console.log("ranges["+j+","+k+"]: " + ranges[j,k]);
}
}
return ranges;
}
Последняя функция предназначена для создания двумерного массива.По какой-то причине мне не хватает, вместо того, что я ожидаю, я получаю это:
ranges["a,b,c","b,c,d","c,d,e"]
Чего мне не хватает?Есть лучший способ сделать это?Хотелось бы, чтобы я мог использовать PHP в этом скрипте, потому что он намного лучше справляется с такими данными ...