函数中循环的JavaScript
我目前一直在使用javaScript for循环 情况是这样的,在我的程序中有一个函数,它每200毫秒返回真/假值 我目前正在尝试编写的函数应该从上述函数中获取值,以便于参考,我将其命名为function1,并将其存储在数组中。 我试图使用for循环将这些值存储在一个8元素数组中。 下面是我的代码函数中循环的JavaScript,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我目前一直在使用javaScript for循环 情况是这样的,在我的程序中有一个函数,它每200毫秒返回真/假值 我目前正在尝试编写的函数应该从上述函数中获取值,以便于参考,我将其命名为function1,并将其存储在数组中。 我试图使用for循环将这些值存储在一个8元素数组中。 下面是我的代码 function myFunction1(imagestatus) // { var statusArray = ["","","","","","","",""]; for (
function myFunction1(imagestatus) //
{
var statusArray = ["","","","","","","",""];
for (var i = 0; i <= statusArray.length - 1; i++)
{
statusArray[i] = imagestatus;
}
}
现在,在for循环的第一次执行期间,它将分配数组的第0个元素,true或false。在第二次执行期间,它也会这样做,这是没有好处的
我希望执行的任务是,当function1将其值返回给myFunction时,它必须将其存储在第0个元素中。然后,当它再次返回时,如果与第0个元素中的值相同,则将其存储在第1个元素中,如果不相同,则采取不同的操作。从空数组开始:
var array[];
然后使用:
array.push(data);
将每个数据添加到数组的右端。听起来需要做很多事情。首先,您需要一个回调函数。其次,需要将状态数组移动到全局范围
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;
}
}
我没有看到对function1的任何调用,也没有看到任何将statusArray元素与任何东西进行比较的尝试。请尝试创建一个全局变量,而不是本地变量。在这种情况下,为var I=0编写更为惯用;i<数组长度;如果你要使用for循环,我假设你的myFunction1被一个外循环调用,或者被一个以200ms速率重复的函数调用,也就是说,你的计时代码在你的myFunction1之外,所以它只起到触发器的作用。