2016-03-28 42 views
-2

Şu an için bir javaScript döngü ile takıldım.Döngüsel işlev için döngü JavaScript

Durum böyle, benim programımda her 200 ms'de doğru/yanlış değer döndüren bir işlev var.

Şu anda kodlamaya çalıştığım işlev, yukarıdaki işlevden (referans kolaylığı için bunu, işlev1 olarak adlandırır) ve bir dizide saklamanız gereken değeri almalıdır. Bu değerleri bir 8 öğe dizisinde saklamak için bir for döngüsü kullanmaya çalışıyorum. Benim kod aşağıda gösterilen ,

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

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

     } 
} 

Şimdi, döngü için ilk yürütülürken, doğru ya da yanlış dizinin, 0 elemanını atar. Ve ikinci uygulama sırasında da aynı şey iyi olmaz.

Yapmayı beklediğim görev, işlev1 değerini myFunction işlevine döndürdüğünde, onu 0 öğesinde saklaması gerekir. Daha sonra tekrar döndüğünde, 0 öğesindeki değerle aynıysa, 1. öğede saklayın, aynı değilse, farklı bir işlem yapın. Boş bir dizi

+0

İşlev1 işlevine hiçbir çağrı görmüyorum, ne de "statusArray" öğesinin bir öğesinin * bir şeyle * karşılaştırılması girişimlerini göremiyorum. –

+0

Yerel olan yerine global bir değişken oluşturmayı deneyin. – Dexter

+0

Bu durumda, 'for (değişken i = 0; i royhowie

cevap

0

Başlangıç: o zaman

var array[]; 

kullanın:

array.push(data); 

dizinin sağ ucuna her verisini ekleyin.

0

Bir çok şeyin olması gerektiği gibi görünüyor. Öncelikle, bir geri arama işlevi istiyorsunuz. İkincisi, durum dizisini genel kapsamına taşımanız gerekir.

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; 
    } 
}