JavaScript が再帰を使用する方法

醉折花枝作酒筹
リリース: 2021-04-29 09:12:43
転載
2500 人が閲覧しました

この記事では、JavaScript の再帰メソッドについて紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

JavaScript が再帰を使用する方法

再帰:

関数は関数自体を呼び出します。これは再帰です。再帰には終了条件が必要です。

    function f1() {
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
        f1();
    };
    f1();//浏览器崩溃,因为没有结束条件——死循环

	改进如下:
	    var i=0;
    function f1() {
        i++;
        if (i<5){
            f1();
        }
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
    };
    f1();
ログイン後にコピー

小さな栗:

再帰的実装: n 個の数値の合計を求める n=5 ------->5 4 3 2 1

//for 循环写法:
    var sum=0;
    for (var i=0;i<=5;i++){
        sum+=i;
    }
    console.log(sum);
----------------------分割线---------------------------

   function getSum(x) {
        if (x==1){
          return 1
        }
        return x+getSum(x-1);
    };

    var sum1=getSum(5);
    console.log(sum1);
    console.log(getSum(10));
ログイン後にコピー

実行プロセス:
コードは getSum(5) を実行します—>関数を入力し、この時点で x は 5 で、5 getSum(4) が実行されます。今回、コードは

を待機します。この時点では、5 getSum(4)、コードは最初に計算を実行せず、最初に getSum(4) を実行し、関数に入り、4 getSum(3) を実行して待機します。 、getSum(3 を最初に実行します))、関数に入り、3 getSum(2) を実行し、待機します。最初に getSum(2) を実行します。関数に入り、2 getSum(1) を実行します。待機、最初に getSum(1) を実行します。 x==1 の判定を実行すると 1 が返されるので、

この時の getSum(1) の結果は 1 となり、出力が開始されます

2 getSum( 1) この時点での結果は次のとおりです。 2 1

Execution:

getSum(2)---->2 1

3 getSum(2) この時点の結果時刻は 3 2 1

4 getSum( 3) このときの結果は 4 3 2 1

5 getSum(4) このときの結果は 5 4 3 2 1

    结果:15
ログイン後にコピー

さらにいくつか:

    //递归案例:求一个数字各个位数上的数字的和:  123   --->6 ---1+2+3
    //523
    function getEverySum(x) {
        if(x<10){
            return x;
        }
        //获取的是这个数字的个位数
        return x%10+getEverySum(parseInt(x/10));
    }
    console.log(getEverySum(1364));//5
ログイン後にコピー
 //递归案例:求斐波那契数列

    function getFib(x) {
        if(x==1||x==2){
            return 1
        }
        return getFib(x-1)+getFib(x-2);
    }
    console.log(getFib(12));
ログイン後にコピー

[推奨学習: JavaScript 上級チュートリアル]

以上がJavaScript が再帰を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート