2016-07-15 3 views
-1

Мне нужно вызвать функцию, чтобы отправить идентификатор учетной записи, прежде чем я смогу получить учетную запись для пользователя. В этой функции мне нужно проверить, существует ли уже найденная учетная запись со стороны пользователя, если она существует, увеличить идентификатор запроса и повторно запустить эту функцию до тех пор, пока получаемая учетная запись не станет новой для пользователя.Javascript: Как написать и назвать рекурсивную функцию?

Поскольку функция будет называть себя, поэтому я предполагаю, что то, что я делаю, записывает мою первую рекурсивную функцию в моей жизни.

Я пробовал:

<script> 
    function updateAcc(maxVal) { 

     $.post("accountUpdate.php", {maxVal:maxVal}, function(result){ 
      // get the retrieved account ID 
      var result=$(result); 
      pa.replaceWith(result); 
      var resultid=result.attr("data-topic-id"); 
      var testlength=$('*[data-topic-id="'+resultid+'"]').length; 
      // check if retrived account already exists on user's page 
      // if exists alraedy, increase the query ID, run the function again, retrieved new account ID,until there's no same accounts on users' side 
      if(testlength>1) { 
       maxVal++; 
       updateAcc(); 
      } 

      // alert(resultid); 
     }) 
    } 
    // envoke the function 
    updateAcc(maxVal) 
</script> 
+1

и ...... что не работает? – madalinivascu

+2

Когда вы вызываете его рекурсивно, вам все равно нужно передать параметр 'maxVal'. – jfriend00

+0

для вызова функции -> updateAcc(); нужен параметр maxVal – Rashid

ответ

6

Вместо того, чтобы делать это,

if(testlength > 1) 
{ 
    maxVal++; 
    updateAcc(); 
} 

вы можете использовать

if(testlength > 1) 
{ 
    updateAcc(maxVal+1); 
} 

Таким образом, вы можете вызвать функцию с maxVal увеличивается на единицу ,

Параметр maxVal является «уникальным» для iteration.

Смежные вопросы