2016-07-15 14 views
-1

ユーザーのアカウントを取得する前に、アカウントIDを投稿する機能を呼び出す必要があります。その機能では、検索されたアカウントが既に存在するかどうかを確認する必要があります(存在する場合)。クエリIDを増やし、取得したアカウントが新しいユーザーになるまで関数を再実行する必要があります。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(); *よりよい解決策は、再帰をドロップしていない配列内のいくつかのクエリ操作を '()'は、ユーザーのトピックのidからbuldingされている配列が – Rashid

答えて

6

の代わりにこれをやって、

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

をあなたがmaxValで関数を呼び出すことができますこの方法は、1つずつ増加

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

を使用することができます。

maxValのパラメータは、iterationの「ユニーク」です。

関連する問題