AS3 - 检查数组中的结果并添加到计数器

时间:2013-04-24 13:59:53

标签: actionscript-3 flash flash-cs6

我正在尝试进行视频测验,当您点击它时会向数组中添加值1。数组大小达到[9],我试图从数组中读取数据,这样如果[0]和[9]之间的数组中的值为1,它将向计数器添加1。

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

到目前为止我的代码:

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

5 个答案:

答案 0 :(得分:2)

更好的是,使用for each...in循环。它与普通的for循环没有什么不同,但它确实提供了一些同义词糖。

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

答案 1 :(得分:1)

为了它的美丽......

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

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

答案 2 :(得分: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

答案 3 :(得分:0)

使用循环怎么样?

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

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

答案 4 :(得分: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