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

Можете ли вы, пожалуйста, проголосовать и отметить это как правильный ответ @ user7393941 –

+0

Я только что подписался на сайт, поэтому кажется, что я не могу продвинуться, но это сработало. Я не знаю, почему кто-то проголосовал за него ... – user7393941