はじめに
Laravel + Vue.jsの実務中に、再帰関数をJavaScriptで実装する箇所があり、苦戦したので学習がてら基本を纏めてみました。
開発状況(Version)
macOS Big Sur
Laravel Mix 6.0.8
Laravel 8.27.0
PHP 7.3.29
node.js 14.18.3
Vue.js 2.6.12
※ココから先のシェル名の「Bash」となっている箇所は全て「zsh」です。
ブログのコードエディターの言語設定に「zsh」がないため、「Bash」にしています。
再帰関数とは?
関数の処理の中で自分自身を呼び出す関数のこと。
注意点
・停止条件を設定すること
・繰り返しするたびに変化すること
この2点注意しないと、魔の無限ループに陥るので注意!!
実装
分かりやすい内容で実装してみます。
例1)
function mario(n){
if (n <= 0){
return 0
}
return n + mario(n-1)
};
console.log(mario(7));
例1の式を分解すると、
mario : n = 7 なので、
7 + mairo(7-1) + mario(6-1) + mario(5-1) + mario(4-1) + mario(3-1) + mario(2-1) + 0 = 28
例2)
function luigi(n){
if(n <=1){
return 1
}
return n * multi(n-1)
};
console.log(luigi(6));
例2の式を分解すると、
luigi : n = 6 なので、
6 * luigi(6-1) * luigi(5-1) * luigi(4-1) * luigi(3-1) * 1 = 720
最後に
実際に実装する際は、このような簡単な処理を書くことはないのかもしれませんが、あくまでも基本として簡単な例を書いてみました。何事も、基本が大事ですから。。。
コメント