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.<*>();