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