2016-04-27 18 views
0

Ich habe zwei Arrays. Array eins hat vordefinierte Elemente. Array zwei collect Elemente zur Lauf time.I müssen wahr oder falsch zu erhalten, nachdem diese beiden arrays.Also diese beiden Arrays vergleichen kann sein ..Vergleichen Sie zwei Arrays in 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 

Antwort

1

Verwenden 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

Das ist einfach zu tun, ich denke, diese Funktionalität sollte

arbeiten
//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

Das ist nicht einmal ein Code Trottel, es ist nur eine Funktionalität, mehr wie ein Umriss! – Jeffin