2013-04-18 8 views
6

Credo sia qualcosa di semplice ma ovviamente non abbastanza semplice :). Qualche idea su come verificare se un valore esiste già nella matrice prima di aggiungere il valore usando il ciclo FOR?AS3: come verificare se esiste già un valore nell'array prima di aggiungerlo con il ciclo FOR?

Finora ho questo e non funziona come voglio perché la matrice può contenere valori duplicati!

  var n:int = 5; 
     var cnt:int; 
     for (var i = 0; i < n; i++) 
     { 
      cnt = randomThief(); 

      for (var a = 0; a < loto5.length; a++) 
      { 
       if (loto5[i] == cnt) 
       { 
        loto5[i] = cnt; 
       } 
      } 
     } 

risposta

15

È possibile utilizzare il metodo della classe Array indexOf() per verificare se il valore esiste in questo modo:

var index:int = loto5.indexOf(cnt); 

indexOf() restituisce un -1, se il valore non esiste. Ecco un esempio di come fare un controllo:

if (loto5.indexOf(cnt) >= 0) 
{ 
    // do something 
} 
+0

Grazie, hai fatto la mia ... la notte :) – irnik

1
for (var a = 0; a < loto5.length; a++) 
{ 
    cnt = randomThief(); 
    if (loto5.indexOf(cnt) == -1) //if cnt isn't in array do ... 
    { 
     trace (cnt+" is not in Array"); 
     loto5[a] = cnt; 
    } 
}  

Opere, semplice e bellezza :)

Problemi correlati