*遞歸算法*
* * * * *
遍歷目錄時一般使用遞歸算法,否則就難以編寫出簡潔的代碼。遞歸算法與數學歸納法類似,通過不斷縮小問題的規模來解決問題。最簡單的遞歸算法模型如下:
```
function factorial(n) {
if (n === 1) {
return 1
} else {
return n * arguments.callee(n - 1)
}
}
```
在嚴格模式下 `arguments.callee` 會報錯,所以通常上面代碼會寫成下面形式:
```
var factorial = function foo(n) {
if (n === 1) {
return 1
} else {
return n * foo(n - 1)
}
}
```