【问题标题】:AS3: How to check if a value already exists in the Array before adding with FOR loop?AS3:如何在使用 FOR 循环添加之前检查数组中是否已存在值?
【发布时间】:2013-04-11 22:17:24
【问题描述】:

我相信这很简单,但显然还不够简单 :)。任何想法如何在使用 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;
                }
            }
        }

【问题讨论】:

    标签: arrays actionscript-3 loops for-loop


    【解决方案1】:

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

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

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

    if (loto5.indexOf(cnt) >= 0)
    {
       // do something
    }
    

    【讨论】:

    • 谢谢,你度过了我的……夜晚 :)
    【解决方案2】:
    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;
        }
    }    
    

    作品,简单而美丽:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多