再帰関数
再帰関数とは関数の中で自分自身を呼び出している関数のこと。
例
function fn(num) {
if (num <= 1) {
return num;
} else {
return num + fn(num - 1);
}
}
結果
console.log(fn(3));
// ▶︎ 6
どのような処理になっているか
fn(3)の時はifの処理はスルーされ、elseの処理が実行される。
return 3 + fn(n + 1)
fn(2)の時もifの処理はスルーされ、elseの処理が実行される。
return 3 + fn(n + 1)
fn(1)は「n<=1」はtrueになるのでnum「1」がreturnされる。
return num
fn(1)で返された結果「1」がfn(2)の「fn(num - 1)」にreturnされる。
以上の流れを踏まえるとこのようになる
結果
function fn(num) {
if (num <= 1) {
return num;
} else {
return num + fn(num - 1);
}
}
// ▶︎ 6
fn(3) = return 3 + 2 + 1
fn(2) = return 2 + 1
fn(1) = return 1
参考