2017-01-09 98 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