2012-10-26 6 views
0

안녕하세요, 저는 build_Array라는 함수에 ajax 호출을 사용하고 있습니다. 이 함수는 "1-877-968-7762를 호출하여 휴가를 시작합니다.", 1,0, through, 50 % pay., 1,365 through를받을 자격이 있으며, 휴가를 지불하지 않습니다. 1,0, After; " 을 쉼표로 구분 된 섹션으로 2 차원 배열로 변환합니다. 하지만 작동하지 않습니다. 그것은 배열의 모든 값이 정의되지 않았다고 말합니다. 여기에 내가 기능 build_Array가 여기AJAX/Javascript 함수가 작동하지 않습니다.

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; 
    } 
    } 

그리고 (그것은 jsfiddle http://jsfiddle.net/ChaZz/3/에서 작동) ... 아약스 내부의 함수를 호출하는 곳입니다 ...

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; 
} 

답변

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 
+0

console.log의 기능은 무엇입니까? –

+0

콘솔에 기록 ... – Shmiddty

+0

모든 최신 브라우저에 설치된 개발자 콘솔. – Shmiddty

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; 
} 
관련 문제