如何检查数组A中的值是否在数组B中?

时间:2013-11-14 17:20:42

标签: arrays actionscript-3 indexof

我最近遇到了一些腌渍,我正在尝试比较这两个数组。

Array1 = ["Red","Green","Blue","Yellow","Black"];

Array2 = ["Green","Violet","Black","White"];

我想知道Array2中的所有值是否都不在数组1中。所以我想出的是:

for(var i:int=0;i<Array2.length;i++)
{
    if(Array1.indexOf(Array2[i]) == -1)
    {
        trace("No String found!")
    }
} 

现在它每次找不到值时都会给我一个跟踪。我遇到的问题是,只有当Array2中的所有值都不在Array1中时,我才希望它执行跟踪。

有没有人有想法?

2 个答案:

答案 0 :(得分:2)

最好的方法是搜索直到找到值,然后退出循环。如果找不到值,它将自然退出并且标志将保持为false。然后检查标志是否为true / false并相应地执行操作。

试试这个:

var found:Boolean = false;
for(var i:int = 0; i < Array2.length && !found; i++)
{
    found = Array1.indexOf(Array2[i]) == -1;
}

if (!found)
{
    trace("No String found!");
}

答案 1 :(得分:0)

  

我想知道所有 Array2中的值是否不在数组1中

你是说全部还是其他?你可以使用的所有内容(阅读:复杂)这个casalib arrayUtil类:http://as3.casalib.org/docs/org_casalib_util_ArrayUtil.html#containsAll

此函数比较是否存在所有值,其他功能也可能有帮助。