7

我相信这很简单,但显然不够简单:)。任何想法如何在使用 FOR 循环添加值之前检查数组中是否已经存在值?

到目前为止我有这个,它不能像我想要的那样工作,因为数组可以包含重复的值!

            var n:int = 5;
        var cnt:int;
        for (var i = 0; i < n; i++)
        {
            cnt = randomThief();

            for (var a = 0; a < loto5.length; a++)
            {
                if (loto5[i] == cnt)
                {
                    loto5[i] = cnt;
                }
            }
        }
4

2 回答 2

18

您可以使用indexOf()Array 类的方法来检查值是否存在,如下所示:

var index:int = loto5.indexOf(cnt);

indexOf()如果值不存在,则返回 -1。以下是如何进行检查的示例:

if (loto5.indexOf(cnt) >= 0)
{
   // do something
}
于 2013-04-18T17:12:45.477 回答
1
for (var a = 0; a < loto5.length; a++)
{
    cnt = randomThief();
    if (loto5.indexOf(cnt) == -1) //if cnt isn't in array do ...
    {
        trace (cnt+" is not in Array");
        loto5[a] = cnt;
    }
}    

作品,简单而美丽:)

于 2013-04-18T20:27:04.097 回答