Array et Vector en AS 3.0
En AS 3.0 la classe Array voit ses méthodes complétées, et la classe Vector fait son apparition…
- En savoir plus sur les nouvelles méthodes de la classe Array() et la classe Vector()
- Mike Chambers – Array / Vector Performance Comparison
ForEach
var tableau:Array = [ "a", "b", "c" ];
function parse ( element:*, index:int, tableau:Array ):void {
trace ( element + " : " + index + " : " + tableau);
}
tableau.forEach( parse );
/*
a : 0 : a,b,c
b : 1 : a,b,c
c : 2 : a,b,c
*/
Map
var tableau:Array = ["a", "b", "c"];
function parse ( element:*, index:int, tableau:Array ):String {
return index + 1 + "-" + element ;
}
var resultat:Array = tableau.map ( parse )
trace(resultat)
/*
1-a,2-b,3-c
*/
Filter
var tableau:Array = [ "Anaïs", "Barbara", "Anathée"];
function parse ( element:*, index:int, tableau:Array ):Boolean {
return ( element.charAt(0).toLowerCase() == "a" );
}
var resultat:Array = tableau.filter ( parse );
trace( resultat );
/*
Anaïs,Anathée
*/
Some
var tableau:Array = [ 1, "andrée",4 ];
function parse ( element:*, index:int, tableau:Array ):Boolean {
return ( element is String );
}
var resultat:Boolean = tableau.some ( parse );
trace( resultat );
/*
true
*/
Every
var tableau1:Array = [ "Albert", "andrée","Anathée" ];
var tableau2:Array = [ "Anaïs", "Barbara" ];
function parse ( element:*, index:int, tableau:Array ):Boolean {
return ( element.charAt(0).toLowerCase() == "a" );
}
var resultat1:Boolean = tableau1.every ( parse );
var resultat2:Boolean = tableau2.every ( parse );
trace( resultat1 );
trace( resultat2 );
/*
true
false
*/
IndexOf et lastIndexOf
var tableau:Array = [ "Anaïs", "Barbara", "Anathée","Barbara"]; var resultat1:int = tableau.indexOf ( "Barbara" ); var resultat2:int = tableau.lastIndexOf ( "Barbara" ); trace( resultat1 ); trace( resultat2 ); /* 1 3 */
Vector()
La classe Vector() reste préférable pour l’utilisation de tableaux car plus compacte et plus rapide à l’exécution.
Voici sa signature et son instanciation :
function Vector(length:uint = 0, fixed:Boolean = false) var vecteur:Vector.<int> = new Vector.<int>(10); var vecteur:Vector.<*> = new Vector.<*>();
