在javascript中递归添加数组元素会将它们连接起来
我试图在javascript中添加2D数组的元素,这些元素基于使用递归的一些逻辑。我惊讶地发现,它不是将数字相加,而是将它们串联起来。我的意思是说变量“sum”的内容不是元素的和,而是元素的串联。有人能帮我吗?请告诉我我犯的错误在javascript中递归添加数组元素会将它们连接起来,javascript,arrays,recursion,Javascript,Arrays,Recursion,我试图在javascript中添加2D数组的元素,这些元素基于使用递归的一些逻辑。我惊讶地发现,它不是将数字相加,而是将它们串联起来。我的意思是说变量“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(
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);
}
var globearr=[];
var股票=0;
var总和=0;
var some=[“3#44#75”,“21#98#60”];
莱斯塔蒙特(部分);
函数递归(myArr、i、j、row、col){
如果(i==第1行和&j==第1列){
sum=sum+myArr[i][j];
globearr[stock++]=总和;
返回0;
}
else if(i==行1&&j!==列1){
sum=sum+myArr[i][j];
复发(myArr,i,j+1,row,col);
}
如果(i!==row-1&&j===col-1){
sum=sum+myArr[i][j];
复发(myArr,i+1,j,row,col);
}
其他的
{
sum=sum+myArr[i][j];
复发(myArr,i,j+1,row,col);
复发(myArr,i+1,j,row,col);
}
}
函数leastAmount(输入1)
{//这里有些代码设置行、列和temparr[]//
var myArr=新数组(行);
对于(i=0;i对每个整数运算使用parseInt(),仅从读取代码中我并不真正了解它在做什么,但我怀疑可能是错误的,如果您使用的是+
运算符,并且其中一个操作数是字符串,它们将连接而不是添加。您可以使用typeof
进行检查,或parseInt()
转换为数字类型。