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

Check if array contains values which are the same

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

只是在寻找解释谢谢

我已经有几年没有写关于 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;
}

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

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 中。如果任何值在字典中已有键,则它是重复的。