2014-06-12 3 views
0

재귀를 사용하여 일부 논리를 기반으로하는 자바 스크립트에서 2 차원 배열의 요소를 추가하려고합니다. 숫자를 추가하는 대신 숫자를 연결하는 것이 놀랍습니다. 변수 "sum"의 내용이 합계가 아니라 요소의 연결이라는 말입니다. 누군가 나를 도울 수 있습니까? 제가 저지른 실수에 대해 말해주십시오. 모든 적분 동작자바 스크립트에서 배열 요소를 재귀 적으로 추가합니다.

var globearr=[]; 
var stock=0; 
var sum=0; 
var some=["3#44#75","21#98#60"]; 
leastAmount(some); 
function recur(myArr,i,j,row,col){ 
    if(i===row-1&&j===col-1){ 

    sum=sum+myArr[i][j]; 
    globearr[stock++]=sum; 
    return 0; 
    } 
    else if(i===row-1 && j!== col-1){ 

    sum=sum+myArr[i][j]; 
    recur(myArr,i,j+1,row,col); 
    } 
    else if(i!==row-1 && j=== col-1){ 

    sum=sum+myArr[i][j]; 
    recur(myArr,i+1,j,row,col); 
    } 
    else 
    { 

    sum=sum+myArr[i][j]; 
    recur(myArr,i,j+1,row,col); 
    recur(myArr,i+1,j,row,col); 
    } 
} 

function leastAmount(input1) 
    { //some code goes here setting up row and col and temparr[]//  
    var myArr=new Array(row);  
    for(i=0;i<row;i++){ 
    myArr[i]=new Array(col); 
    } 
    y=0;   
    for(i=0;i<row;i++){   
     for(j=0;j<col;j++){ 
      myArr[i][j]=temparr[y++]; 
     } 
    } 

    recur(myArr,0,0,row,col); 
    var start=globearr[0]; 
    var count=globearr.length; 
     for(i=1;i<count;i++){ 
     if(start>globearr[i]) 
     { 
      start=globearr[i]; 
     } 
     } 

     alert(start); 
} 
+2

그냥 당신이 사용하는 경우 내가 정말 무엇을하고 있는지 얻을 수 있지만, 내가 뭘 잘못 의심은하지 않는 코드를 읽기에서'+' 연산자와 피연산자 중 하나가 문자열이면 추가 대신 연결됩니다. 'typeof'를 사용하여 확인하거나,'parseInt()'를 사용하여 숫자 유형으로 변환 할 수 있습니다. – xec

답변

0

사용으로 parseInt()

+0

감사합니다. 작동합니다. – edge

관련 문제