2016-04-27 63 views
0

我有兩個數組。數組有一個預定義的元素。在運行再寄一次陣列中的兩個收集元素需要比較這兩個這兩個數組可以arrays.Also後能得到真或假的..比較as3中的兩個數組

var ArrayOne:Array = new Array("b1","b2","b3","b4"); 
var ArrayTwo:Array = ["b1","b2","b3","b4"]; 
//output must be true 

var ArrayOne:Array = new Array("b1","b2","b3","b4"); 
var ArrayTwo:Array = ["b2","b1","b4","b3"]; 
//output must be true 

var ArrayOne:Array = new Array("b1","b2","b3","b4"); 
var ArrayTwo:Array = ["b1","b2","b3","b4","b1","b2"]; 
//output must be true 

var ArrayOne:Array = new Array("b1","b2","b3","b4"); 
var ArrayTwo:Array = ["b1","b2","b3","b4","b5"]; 
//output must be false 

回答

1

使用Array.indexOf(value)

function compareArrays(ArrayOne: Array, ArrayTwo: Array): Boolean{ 

    var ret:Boolean = true; 

    for (var i:int=0; i<ArrayTwo.length; i++){ 
     var ind: int = ArrayOne.indexOf(ArrayTwo[i]); 
     if (ind == -1){ 
      ret = false; 
      break; 
     } 
    } 

    return ret; 
} 
0

那是容易做到的,我覺得這個功能應該工作

//first create a copy of array 1 
var temp:Array = ArrayOne.splice(); 

for(i:int = 0; i< temp.length; i++) 
    { 
     for(j:int = 0; j< arraytwo.length; j++) 
     { 
      if(temp[i]==arraytwo[j]) 
       { 
       //remove the value from array 
       temp.splice(thatvalue) 
       } 
     } 
    } 

if(temp.length>0) 
     trace("false") 
else 
     trace("true") 
+0

那不是連碼白癡,它只是一個功能,更像是一個輪廓! – Jeffin