2016-03-28 21 views
-2

現在、私はjavaScript forループを使用しています。関数内のJavaScript forループ

私のプログラムにはこのような状況があり、200ミリ秒ごとに真偽値を返す関数があります。

私が現在コードしようとしている関数は、上記の関数から値を取得する必要があります(参照しやすいように、function1という名前にします)、配列に格納します。 forループを使用して、これらの値を8要素配列に格納しようとしています。以下に示す は今

function myFunction1(imagestatus) // 
{ 
    var statusArray = ["","","","","","","",""]; 

    for (var i = 0; i <= statusArray.length - 1; i++) 
     { 
      statusArray[i] = imagestatus; 

     } 
} 

、私のコードで、forループの最初の実行時に、それは、配列、真または偽の0番目の要素を割り当てます。そして2回目の執行でも同じことが行われ、それはいいことではありません。

私が期待していることは、function1がその値をmyFunctionに返すとき、それは0番目の要素にそれを格納しなければならないということです。そして、再び戻ってきたら、0番目の要素の値と同じであれば、1番目の要素に格納します。同じでなければ、別の動作を行います。

+0

私は 'function1'への呼び出しを見ませんし、' statusArray'の要素を* anything *と比較しようとする試みもありません。 –

+0

ローカル変数ではなくグローバル変数を作成してみてください。 – Dexter

+0

この場合、 'for(var i = 0; i royhowie

答えて

0

空の配列を持つスタート:

var array[]; 

その後、使用:

array.push(data); 

を配列の右端に各データを追加します。

0

多くのことのような音が起こる必要があります。まず、コールバック関数を要求しています。次に、ステータス配列をグローバルスコープに移動する必要があります。

var statusArray = ["","","","","","","",""]; 
function myFunction1(imagestatus, callback, differentAction) // 
{ 

    var i = 0; 

    // if its as same as the value in 0th element, 
    while (statusArray[i]==imagestatus) 
    { 
     i++; 
    } 
    if (i<statusArray.length && i>0) 
    { 
     // store it in the 1st element 
     statusArray[i]=imagestatus; 
     if (typeof(callback)=="function") 
     { 
      callback(); 
      return; 
     } 
    } 

    // if not same, then take a different action 
    if (typeof(differentAction)=="function") 
    { 
     differentAction(); 
     return; 
    } 
} 
関連する問題