遞迴就是乙個函式在它的函式體內自己呼叫自己。執行遞迴函式將反覆呼叫其自身。遞迴函式必須有結束條件,否則會出現死迴圈。
當函式在一直遞推,直到遇到牆後返回,這個牆就是結束條件。
所以遞迴要有兩個要素,結束條件與遞推關係。
要實現遞迴要書寫兩個內容:
乙個是滿足結束條件的時候結束函式;
乙個是不滿足結束條件的時候要執行的**;
function
sum(
)sum()
//sum()函式呼叫sum,執行sum裡面的**,列印1,又執行sum,又列印1,又執行sum... 這種叫做死遞迴。
開始書寫:寫遞迴函式先要寫乙個結束條件(為了避免出現"死遞迴")
function
add(n)
}
再寫不滿足條件我們的遞迴處理
function
add(n)
else
}
計算1到5的階乘
function
sum(n)
else
}console.
log(
sum(5)
);
執行過程:
sum(5)
(5*sum(4))
(5*(4*sum(3)))
(5*(4*(3*sum(2))))
(5*(4*(3*(2*sum(1)))))
(5*(4*(3*2)))
(5*(4*(6)))
(5*24)
js 中斷函式執行 js如何中斷遞迴函式
如題,功能是為了生成乙個多級陣列內的某個id及他的父元素的id陣列,但是在查詢完畢以後retrun出生成的陣列結果,依然還執行了剩下的迴圈,請問要如何中斷並跳出呢 initarr id,type list arr const getclassify list,id else else if end ...
js 中斷函式執行 js如何中斷遞迴函式
如題,功能是為了生成乙個多級陣列內的某個id及他的父元素的id陣列,但是在查詢完畢以後retrun出生成的陣列結果,依然還執行了剩下的迴圈,請問要如何中斷並跳出呢 initarr id,type list arr const getclassify list,id else else if end ...
js 遞迴執行順序
函式的宣告 function getsum x return x getsum x 1 函式的呼叫 執行getsum 5 進入函式,此時的x是5,執行的是5 getsum 4 此時 等待 此時5 getsum 4 先不進行計算,先執行getsum 4 進入函式,執行的是4 getsum 3 等待,先...