2016-03-28 129 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个元素。而在第二次执行期间,它也会做同样的事情,这是不好的。

我希望做的任务是,当function1将其值返回给myFunction时,它必须将其存储在第0个元素中。然后当它再次返回时,如果它与第0个元素的值相同,则将其存储在1st元素中,如果不相同,则采取不同的操作。

+0

我没有看到任何对'function1'的调用,也没有看到任何将'statusArray'的元素与任何*进行比较的尝试。 –

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