0

我正在尝试进行视频测验,当您单击它时,会将值 1 添加到数组中。数组大小上升到 [9] 并且我正在尝试从数组中读取,以便如果在 [0] 和 [9] 之间的数组中有值 1,它将向计数器添加 1。

我让它只为数组中的第一个值工作,所以我知道它有效,但我不确定如何让它从所有数组中读取以检查 1 的值。

到目前为止,这是我的代码:

if (clickTimes[0] == 1)
{
counter2++;
}
4

5 回答 5

2

更好的是,使用for each...in循环。它确实与常规循环没有什么不同for,但它确实提供了一些语法糖。

for each (var i:int in clickTimes)
{
    if (i == 1)
    {
        counter2++;
    }
}
于 2013-04-24T14:16:06.473 回答
1
var clickTimes:Array = [1,1,1,0,0,0,1,1,0] // 5 1's and 4 0's
var counter2:int = 0

clickTimes.forEach(function(obj:*){
                       if (obj == 1){
                           counter2++;
                       }
                   })

trace(counter2) // traces 5
于 2013-04-24T14:59:16.087 回答
1

为了它的美丽...

counter2 = clickTimes.join('').replace(/0/g, '').length;

它将所有值放在一个字符串中,删除零并计算剩下的字符。

于 2013-04-24T14:28:51.297 回答
0

使用循环怎么样?

for (var i:int = 0; i < clickTimes.length; ++i)
{
    if (clickTimes[i] == 1)
        counter2++;
}

counter2对于数组中每个值为 1 的元素,这将增加clickTimes

于 2013-04-24T14:06:53.607 回答
0

你不需要if。只是以下内容:

var clickTimes:Array = [1,1,1,0,0,0,1,1,0] // 5 1's and 4 0's
var counter2:int = 0;

for each (var i:int in clickTimes)
{
    counter2 += i;
}

trace(counter2); //5
于 2013-04-24T15:34:32.843 回答