检查数组是否包含相同的值
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
中。如果任何值在字典中已有键,则它是重复的。
如何检查同一数组中的两个或多个值是否相同?
只是在寻找解释谢谢
我已经有几年没有写关于 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
中。如果任何值在字典中已有键,则它是重复的。