2013-11-14 34 views
0

最近我遇到了一些醃菜,我試圖比較這兩個數組。如何檢查數組A中的值是否在數組B中?

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

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

我想知道,如果在所有的數組2的值不是陣列1.所以,我想出了是這樣的:

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

現在,它給了我一絲每次可以在時間沒有找到價值。我遇到的問題是我希望它只在Array2中的所有值都不在Array1中時才執行跟蹤。

是否有任何機構有想法?

回答

2

最好的方法是搜索直到找到一個值,然後退出循環。如果沒有找到值,它將自然退出並且該標誌將保持爲假。然後檢查標誌是否爲真/假,並相應地執行您的操作。

試試這個:

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!"); 
} 
+0

Thant's it!非常感謝你。 – Banzboy

相關問題