2016-11-27 153 views
0
function right(a,b){ 
if(a > b) { 
    console.log(b+1); 
    return b +1 ; } 
else 
{ 
    right(a +=1,b); 
    console.log(a); } 

} 

當我調用這個函數時,它返回undefined。 right(5,10)// undefined。任何人都可以幫助我爲什麼當變量b被聲明並具有值。JavaScript中的遞歸函數返回undefined

+4

您在'else'塊中沒有'return',所以無論何時'a'不大於'b'',您的函數都不會返回 –

回答

0

基本上你需要返回else部分。

function right(a,b){ 
    if(a > b) { 
     console.log(b + 1); 
     return b + 1; 
    } else { 
     console.log(a + 1); 
     return right(a + 1, b); 
     // ^^^ 
    } 
}