0

嗨,我正在使用 ajax 调用一个名为 build_Array 的函数。此函数应分解 myString ,即“致电 1-877-968-7762 开始您的休假。,1,0,通过;您有资格获得 50% 的工资。,1,365,通过;您的休假将是无薪的。, 1,0,之后;" 分成由逗号划分成二维数组的部分。但它不起作用。它说数组的所有值都是未定义的。这是我在 ajax 中调用函数的地方......(它在 jsfiddle http://jsfiddle.net/ChaZz/3/中工作)

var request = new XMLHttpRequest();
  request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
      var myString = request.responseText;
      myString = build_Array(myString);
      document.getElementById('ajax').innerHTML = myString;
    }
  }

这是函数 build_Array...

function build_Array (myString) {
  var mySplitResult = myString.split(';');
  var myArray = new Array(mySplitResult.length);

  //may need to get rid of -1
  for(var i = 0; i < mySplitResult.length -1; i++){
    myArray[i] = new Array(4);
    var mySplitResult2 = mySplitResult[i].split(',');

    for(var z = 0; z < mySplitResult2.length; z++) {
        myArray[i][z] = mySplitResult2[z];
    }
  }
  var final_message = myArray[1][1];
  return final_message;
}
4

2 回答 2

2

http://jsfiddle.net/ChaZz/5/

var myString = "Call 1-877-968-7762 to initiate your leave.,-30,0,through;You are eligible to receive 50% pay.,0,365,through;Your leave will be unpaid.,365,0,After;";

function build_Array (myString) {
  var mySplitResult = myString.split(';');
  var myArray = [];

  for(var i = 0; i < mySplitResult.length; i++){
    myArray[i] = [];
    var mySplitResult2 = mySplitResult[i].split(',');

    for(var z = 0; z < mySplitResult2.length; z++) {
        myArray[i][z] = mySplitResult2[z];
    }
  }
  var final_message = myArray[1][1];
  return final_message;
}

console.log(build_Array(myString)); // 0
于 2012-10-26T20:34:39.880 回答
0

循环不需要从 mySplitArray2 复制到 myArray,只需将返回的数组split直接分配给新数组的该元素即可。并可array.push用于增量构建数组。

function build_Array (myString) {
  var myArray = [];
  for (substring in myString.split(';')){
    myArray.push(substring.split(','));
  }
  var final_message = myArray[1][1];
  return final_message;
}
于 2012-10-26T22:28:23.343 回答