再帰関数について調べてみた

Vue.js/Nuxt.js
スポンサーリンク

はじめに

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

最後に

実際に実装する際は、このような簡単な処理を書くことはないのかもしれませんが、あくまでも基本として簡単な例を書いてみました。何事も、基本が大事ですから。。。

参考記事

コメント