0

こんにちは、build_Array という関数に ajax 呼び出しを使用しています。この関数は、「休暇を開始するには 1-877-968-7762 に電話してください。,1,0,through;あなたは 50% の賃金を受け取る資格があります.,1,365,through;休暇は無給です., 1,0,後;" カンマで区切られたセクションを 2 次元配列にします。しかし、それは機能していません。配列の値はすべて未定義です。ここで、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 に答える