[JavaScript] - Recursion(遞迴)
Recursion(遞迴)
簡單的說,recursion 就是在一個函式當中再去呼叫它自己,其中一個實際的範例就是階層的計算(factorial)。例如 5! = 5 x 4 x 3 x 2 x 1。
範例參考連結
1 | function factorial(num) { |
當 num 不等於 1 的時候,它會去呼叫自己(return num * factorial(num-1),如果 num 等於 1 時,才會回傳結果。
因此實際上執行的過程會像這樣:
Eloqument範例
Eloqument上也有一個例子可以做。
這本網路上的電子書可以直接在上面進行codinga練習並看到結果。
這個案例就像是2的三次方的計算方式
1 | function power(base, exponent) { |
console.log(power(2,3))會變成以下方式
- power(2,3) = return 2 x power(2, 2)
- power(2,2) = return 2 x power(2, 1)
- power(2,1) = return 2 x power(2, 0)
- power(2,0) = return 1
再把得到的值往回推 - power(2,0) = 1
- power(2,1) = 2 x power(2, 0) = 2 x 1 = 2
- power(2,2) = 2 x power(2, 1) = 2 x 2 = 4
- power(2,3) = 2 x power(2, 2) = 2 x 4 = 8