2017-01-09 161 views
0

我有一個函數:JavaScript的遞歸函數調用覆蓋

function brackets(openStock, closeStock, s) { 
    if (openStock == 0 && closeStock == 0) { 
    document.getElementById('demo').innerHTML = s; 
    } 

    if (openStock > 0) { 
    brackets(openStock - 1, closeStock + 1, s + "("); 
    } 
    if (closeStock > 0) { 
    brackets(openStock, closeStock - 1, s + ")"); 
    } 
} 

應該parenthesizes的組合編寫成一段「演示」但是寫的第一個之後,其他的人都沒有寫進段。由於它是一個遞歸函數,我不知道如何連接結果(組合)。

+0

你有沒有嘗試在它周圍包裹一個循環? – Unlockedluca

+0

函數裏面的遞歸函數寫結果 – user7393941

+0

我不確定你在問什麼。你也應該使用'if ... else if'。如果第一個條件爲真,則使用多個「if」將覆蓋初始值 – Rajesh

回答

-1
function brackets(openStock, closeStock,s) 
{ 
    if (openStock == 0 && closeStock == 0) { 
     var e = document.createElement('div'); 
     e.innerHTML = s; 

     while(e.firstChild) { 
      document.getElementById('demo').appendChild(e.firstChild); 
     } 
    } 

    if (openStock > 0) { 
     brackets(openStock-1, closeStock+1, s + "("); 
    } 
    if (closeStock > 0) { 
     brackets(openStock, closeStock-1, s + ")"); 
    } 
} 
+0

它的工作!非常感謝你 – user7393941

+0

你可以請upvote並將其標記爲正確答案@ user7393941 –

+0

我剛剛註冊了該網站,所以它似乎我不能upvote,但這工作。我不知道爲什麼有人下了票... – user7393941