#再帰とは何ですか?
再帰関数は基本条件に達すると、それ自体の実行を停止します。例を通して基本的な条件が何であるかを理解しましょう。たとえば、数値の階乗を見つける必要があります。入力を 1 ずつ減分して階乗関数を呼び出します。入力が 1 に達するたびに停止する必要があります。したがって、ここでは 1 が基本条件となります。
###文法###
ユーザーは次の構文を使用して JavaScript の再帰を理解できます。それでは、再帰のさまざまな例を見てみましょう。ここでは、まず for ループを使用して反復アルゴリズムを実装し、それを再帰的メソッドに変換する方法を学びます。
例 1 (for ループを使用して 1 から n までの数値の合計を求める)
次の例では、1 から N までの数値の合計を取得する sumOfN() 関数を作成しました。 for ループを使用して N 回反復し、各反復で I の値を sum 変数に追加します。
リーリー
上記の例では、反復法を使用して N 個の数値の合計を求めます。ここで、再帰的メソッドを使用して同じことを実行します。例 2 (再帰関数を使用して 1 から n までの数値の合計を求める)
sumOfN() 関数は、以下の例の再帰関数です。引数の値を 1 ずつ減分して、 sumOfN() 関数を繰り返し呼び出します。 sumOfN(N1) は N-1 個の数値の合計を返します。それに N を加算して N 個の数値の合計を取得します。 N の値が 1 になるたびに、関数の実行を停止する基本条件として 1 を返します。
リーリー
例 3 (配列内のすべての文字列をマージする反復方法)以下の例では、文字列の配列を作成します。配列のすべての文字列を 1 つの文字列にマージする mergeString() 関数を作成しました。 for ループを使用して配列を反復処理し、すべての文字列を 1 つずつ「str」変数にマージします。
以下の例では、mergeString() 関数を再帰関数に変換しています。配列の最初の要素を取得し、それを mergeString() 関数の戻り結果とマージします。 mergeString() 関数は、マージ後の最後の n-1 個の配列要素を返します。さらに、slice() メソッドを使用して、配列から最初の要素を削除します。
リーリー
ユーザーは反復と再帰のどちらの方法を使用する必要がありますか?主な問題は、反復と再帰のどちらの方法が優れているか、そしてユーザーがどちらの方法を使用する必要があるかということです。
コードをより小さな部分に分割できる場合は、再帰的メソッドを使用する必要があり、コードのパフォーマンスを向上させるには、反復的メソッドを使用する必要があります。
以上がJavaScript での再帰を理解するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。