再帰関数を書いた事がなかったので、とりあえずフィボナッチ数が適しているだろうと思って書いてみました。
再帰関数という名前に身構えてしまいましたが、意外とシンプルですね。
function F (n) {
if ( n === 0 || n === 1 ) {
return 1;
} else {
return F(n-1) + F(n-2);
}
}
ワンライナー
F = (n) => n === 0 || n === 1 ? 1 : F(n-1) + F(n-2);
こんな感じの書き方は冗長な感じがしているので、よりよい書き方を知っている方は是非コメントをよろしくお願いします
[追記]
コメントでより短いやり方を教えていただきました。
const fib = n => n > 2 ? fib(n - 1) + fib(n - 2) : 1;
基底部のところを後回しにするのがポイントですね。