如何检查同一数组中的两个或多个值是否相同?
只是寻找解释,谢谢
答案 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
中的键来实现。如果任何值已经在字典中有一个键,那么它就是重复的。