2017-12-31 190 views
-6

Javascript再帰で何かを一度だけ実行する方法。javascript再帰関数で何かを一度実行する

は、私は一度だけ、最初の行を実行したいfactorial機能

で私の質問を説明しましょう。

私はこれと異なるユースケースを持っています。そして私は、私はそれはAPIクリーナーを作るために外側の関数で再帰的に何かを評価するために使用される機能をラップすることはしばしば便利ですfactorial(n=1)

function factorial(n) { 
    n = n || 1 //This Line 
    if ((n == 0) || (n == 1)) { 
     return 1 
    } 
    return factorial(n - 1); 
} 

答えて

1

を行うことができますことを非常によく知っている:

function factorial(n) { 
    function compute(n) { 
    if (n === 0 || n === 1) 
     return 1; 
    return n * compute(n - 1); 
    } 
    return compute(n || 1); 
} 

n || 1初期化を内側のcompute()関数が呼び出されると、一度発生します。

このようなラッパーを作成すると、いくつかの組み合わせアルゴリズム(「すべての組み合わせを見つける...」など)ではさらに便利です。