ホームページ >ウェブフロントエンド >jsチュートリアル >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 サイトの他の関連記事を参照してください。