Javascript 返回函数在我的代码中不起作用,导致无限循环

Javascript 返回函数在我的代码中不起作用,导致无限循环,javascript,recursion,Javascript,Recursion,我正在用JavaScript解决一个递归问题。但是,当第一个if语句为true时,return语句不会退出脚本,这将导致无限循环 function steps(n, row = 0, col = 0, stair = '') { if (row === n) { return; } if (col >= n ) { console.log(stair); steps(n, row + 1); } if (col <= row) {

我正在用JavaScript解决一个递归问题。但是,当第一个if语句为true时,return语句不会退出脚本,这将导致无限循环

function steps(n, row = 0, col = 0, stair = '') {
  if (row === n) {
    return;
  } 

  if (col >= n ) {
    console.log(stair);
    steps(n, row + 1);
  } 

  if (col <= row) {
    stair += '#';
  } else {
    stair += ' ';
  }
  
  steps(n, row, col +1, stair)
}
功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
回来
} 
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
} 

如果(col否,问题是您在第一次递归调用后没有返回,因此它也将始终执行第二次,并且该调用没有增加
,因此它是一个无限循环

function steps(n, row = 0, col = 0, stair = '') {
  if (row === n) {
    return;
  } 

  if (col >= n ) {
    console.log(stair);
    steps(n, row + 1);
  } 

  if (col <= row) {
    stair += '#';
  } else {
    stair += ' ';
  }
  
  steps(n, row, col +1, stair)
}
这项工作:

功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
回来
} 
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
}否则{

如果(col感谢Christian指出我缺少一份报税表。这是我现在的工作代码:

function steps(n, row = 0, col = 0, stair = '') {

  if (row === n) {
    return 0;
  } 

  if (col >= n ) {
    console.log(stair);
    steps(n, row + 1);
    return;
  } 
  
  if (col <= row) {
    stair += '#';
  } else {
    stair += ' ';
  }
  
  steps(n, row, col +1, stair)
}
功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
返回0;
} 
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
回来
} 

if(col)如何调用此函数?