检查数组是否包含相同的值

时间:2015-03-21 22:38:14

标签: actionscript-3

如何检查同一数组中的两个或多个值是否相同?

只是寻找解释,谢谢

2 个答案:

答案 0 :(得分:0)

我几年没有在AS 3上写过,但答案看起来像这样:

function hasSame(arr:Array):Boolean {
    arr = arr.concat().sort();
    var prev  = null;
    for each (var a in arr) {
        if (prev != null && a == prev) {
            return true;
        }
        prev = a;
    } 
    return false;
}

答案 1 :(得分:0)

这是检查任何值是否存在两次的简单方法:

function hasDuplicate(array:Array):Boolean {
    var keys:Dictionary = new Dictionary();
    for each(var item:* in array){
        if(keys[item])
            return true;
        keys[item] = true;
    }
    return false;
}

trace(hasDuplicate(["a", "b", "c"])); // false
trace(hasDuplicate(["a", "b", "c", "b"])); // true

这可以通过使用for each循环遍历所有值,然后将每个值存储为Dictionary中的键来实现。如果任何值已经在字典中有一个键,那么它就是重复的。