Package | Niveau supérieur |
Classe | public dynamic class Array |
Héritage | Array Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
, le deuxième est [1]
, etc. Pour créer un objet Array, utilisez le constructeur new Array()
. Array()
peut également être appelé en tant que fonction. Vous pouvez en outre utiliser l’opérateur d’accès aux tableaux ([]
) pour initialiser un tableau ou accéder aux éléments qu’il contient.
Vous pouvez stocker divers types de données dans un élément de tableau, y compris les nombres, les chaînes, les objets et même d’autres tableaux. Vous pouvez créer un tableau multidimensionnel en concevant un tableau indexé et en affectant à chacun de ses éléments un tableau indexé différent. Ce type de tableau est considéré comme étant multidimensionnel car il peut être utilisé pour représenter des données dans un tableau.
Les tableaux sont sparse arrays, ce qui signifie qu’un élément peut occuper la position d’index 0 et un autre la position d’index 5, mais qu’aucun autre élément n’occupe une position comprise entre 0 et 5. Dans ce cas, les éléments compris entre la position 1 et la position 4 ne sont pas définis. Ce terme indique généralement l’absence d’un élément, plutôt que la présence d’un élément doté de la valeur undefined
.
L’affectation au tableau s’effectue par référence plutôt que par valeur. lorsque vous affectez une variable de tableau à une autre variable de tableau, elles renvoient toutes deux au même tableau :
var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c.
N’utilisez pas la classe Array pour créer des associative arrays (également appelés hashes), qui sont des structures de données qui contiennent des éléments nommés et non pas des éléments chiffrés. Pour créer des tableaux associatifs, utilisez la classe Object. Bien que ActionScript vous permette de créer des tableaux associatifs à l’aide de la classe Array, vous ne pouvez pas associer les méthodes ou les propriétés de cette dernière à un tableau associatif.
Vous pouvez étendre la classe Array et bloquer ou ajouter des méthodes. Vous devez cependant affecter à la sous-classe la propriété dynamic
, sous peine de ne plus pouvoir stocker des données dans un tableau.
Plus d’exemples
Insertion d’éléments de tableau
Récupération des valeurs et suppression des éléments du tableau
Tri d’un tableau
Interrogation d’un tableau
Extension de la classe Array
Exemple de tableau : PlayList
Informations complémentaires
Principes de base des tableaux
Tableaux indexés
Tableaux associatifs
Tableaux multidimensionnels
Clonage de tableaux
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
length : uint
Entier non négatif spécifiant le nombre d’éléments contenus dans le tableau. | Array |
Méthode | Défini par | ||
---|---|---|---|
Permet de créer un tableau contenant le nombre spécifié d’éléments. | Array | ||
Permet de créer un tableau contenant le nombre spécifié d’éléments. | Array | ||
Concatène les éléments spécifiés dans les paramètres avec ceux contenus dans un tableau et crée un nouveau tableau. | Array | ||
Exécute une fonction de test sur chaque élément du tableau jusqu’à ce que l’un d’eux renvoie false pour la fonction spécifiée. | Array | ||
Exécute une fonction de test sur chaque élément du tableau et construit un nouveau tableau contenant tous les éléments qui renvoient true pour la fonction spécifiée. | Array | ||
Exécute une fonction sur chaque élément du tableau. | Array | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Recherche un élément dans un tableau en utilisant l’opérateur d’égalité stricte (===) et renvoie la position d’index de l’élément. | Array | ||
Inserstion d’un élément unique dans un tableau. | Array | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Convertit les éléments d’un tableau en chaînes, insère le séparateur spécifié entre les éléments, les concatène, puis renvoie la chaîne obtenue. | Array | ||
Recherche un élément dans un tableau en travaillant à rebours à partir du dernier élément et renvoie la position d’index de l’élément correspondant en utilisant l’opérateur d’égalité stricte (===). | Array | ||
Exécute une fonction sur les éléments d’un tableau et construit un nouveau tableau en fonction des résultats de la fonction appliquée à chaque élément du tableau d’origine. | Array | ||
Supprime le dernier élément d’un tableau et renvoie la valeur de cet élément. | Array | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Ajoute un ou plusieurs éléments à la fin d’un tableau et renvoie la nouvelle longueur du tableau. | Array | ||
Suppression d’un élément unique d’un tableau. | Array | ||
Inverse le tableau. | Array | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Supprime le premier élément d’un tableau et renvoie cet élément. | Array | ||
Renvoie un nouveau tableau constitué d’un éventail d’éléments issus du tableau d’origine, sans modifier ce dernier. | Array | ||
Exécute une fonction de test sur chaque élément du tableau jusqu’à ce que l’un d’eux renvoie true. | Array | ||
Trie les éléments d’un tableau. | Array | ||
Trie les éléments d’un tableau selon un ou plusieurs champs du tableau. | Array | ||
Ajoute et supprime des éléments dans un tableau. | Array | ||
Renvoie une chaîne représentant les éléments du tableau spécifié. | Array | ||
Renvoie une chaîne représentant les éléments du tableau spécifié. | Array | ||
Ajoute un ou plusieurs éléments au début d’un tableau et renvoie la nouvelle longueur du tableau. | Array | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
Constante | Défini par | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [statique]
Spécifie un tri sans respect de la casse pour les méthodes de tri de la classe Array. | Array | ||
DESCENDING : uint = 2 [statique]
Spécifie un tri par ordre décroissant pour les méthodes de tri de la classe Array. | Array | ||
NUMERIC : uint = 16 [statique]
Spécifie un tri numérique (et non de type chaîne de caractères) pour les méthodes de tri de la classe Array. | Array | ||
RETURNINDEXEDARRAY : uint = 8 [statique]
Spécifie que le tri renvoie un tableau composé d’index de tableau. | Array | ||
UNIQUESORT : uint = 4 [statique]
Spécifie le critère de tri unique pour les méthodes de tri de la classe Array. | Array |
length | propriété |
length:uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Entier non négatif spécifiant le nombre d’éléments contenus dans le tableau. Cette propriété est automatiquement mise à jour lorsque vous ajoutez de nouveaux éléments dans le tableau. Lorsque vous affectez une valeur à un élément de tableau (par exemple, my_array[index] = value
), si index
est un nombre et si index+1
est supérieur à la propriété length
, la propriété length
est mise à jour et définie sur la valeur index+1
.
Remarque : si vous affectez une valeur plus courte que la valeur existante à la propriété length
, le tableau sera tronqué.
Implémentation
public function get length():uint
public function set length(value:uint):void
Exemple ( Comment utiliser cet exemple )
names
, avec l’élément de chaîne Bill
. Il utilise ensuite la méthode push()
pour ajouter un autre élément de chaîne, Kyle
. La longueur de la chaîne, telle que déterminée par la propriété length
, était d’un élément avant l’utilisation de push()
et de deux éléments après l’appel de push()
. Une autre chaîne, Jeff
, est ensuite ajoutée pour porter la longueur de names
à trois éléments. La méthode shift()
est alors appelée deux fois pour supprimer Bill
et Kyle
et ne conserver ainsi que le dernier élément length
.
var names:Array = new Array("Bill"); names.push("Kyle"); trace(names.length); // 2 names.push("Jeff"); trace(names.length); // 3 names.shift(); names.shift(); trace(names.length); // 1
Array | () | Constructeur |
public function Array(... values)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Permet de créer un tableau contenant le nombre spécifié d’éléments. Tous les types de valeurs sont pris en charge. La valeur de l’index (ou de la position) du premier élément d’un tableau est toujours 0.
Remarque : cette classe contient deux entrées de constructeur, car celui-ci gère les types variables d’arguments. Le constructeur se comporte différemment selon le type et le nombre d’arguments transmis, comme indiqué dans chaque entrée. ActionScript 3.0 ne prend pas en charge la surcharge d’une méthode ou d’un constructeur.
Paramètres... values — Liste de deux valeurs arbitraires ou plus séparées par une virgule.
Remarque : si vous transmettez un paramètre numérique unique au constructeur Array, il est implicitement interprété comme la propriété |
Valeur émise
RangeError — L’argument est un nombre autre qu’un entier supérieur ou égal à 0.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
one
, two
et three
, puis convertit ces éléments en une chaîne unique.
package { import flash.display.Sprite; public class Array_Array_3 extends Sprite { public function Array_Array_3() { var myArr:Array = new Array("one", "two", "three"); trace(myArr.length); // 3 trace(myArr); // one,two,three } } }
Array | () | Constructeur |
public function Array(numElements:int = 0)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Permet de créer un tableau contenant le nombre spécifié d’éléments. Si vous ne spécifiez aucun paramètre, un tableau contenant 0 élément est créé. Si vous spécifiez un nombre d’éléments, le tableau créé contient le nombre d’éléments indiqué par numElements
.
Remarque : cette classe contient deux entrées de méthode de constructeur, car le constructeur gère les types variables d’arguments. Le constructeur se comporte différemment selon le type et le nombre d’arguments transmis, comme indiqué dans chaque entrée. ActionScript 3.0 ne prend pas en charge la surcharge d’une méthode ou d’un constructeur.
ParamètresnumElements:int (default = 0 ) — Un entier spécifiant le nombre d’éléments contenus dans le tableau.
|
Valeur émise
RangeError — L’argument est un nombre autre qu’un entier supérieur ou égal à 0.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
myArr
, sans argument et avec une longueur initiale de 0 :
package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
"one"
, puis ajoute l’élément de chaîne "six"
à la fin du tableau en employant la méthode push()
:
package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
concat | () | méthode |
AS3 function concat(... args):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Concatène les éléments spécifiés dans les paramètres avec ceux contenus dans un tableau et crée un nouveau tableau. Si les paramètres spécifient un tableau, les éléments correspondants sont concaténés. Si vous ne transmettez aucun paramètre, le nouveau tableau est une duplication (clone superficiel) du tableau d’origine.
Paramètres
... args — Valeur de tout type (nombre, élément ou chaîne) à concaténer dans un nouveau tableau.
|
Array — Tableau qui contient les éléments de ce tableau, suivis des éléments des paramètres.
|
Plus d’exemples
Exemple ( Comment utiliser cet exemple )
- Le tableau
numbers
, qui contient les nombres1
,2
et3
. - Le tableau
letters
, qui contient les nombresa
,b
etc
. - Le tableau
numbersAndLetters
, qui appelle la méthodeconcat()
pour produire le tableau[1,2,3,a,b,c]
. - Le tableau
lettersAndNumbers
, qui appelle la méthodeconcat()
pour produire le tableau[a,b,c,1,2,3]
.
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every | () | méthode |
AS3 function every(callback:Function, thisObject:* = null):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Exécute une fonction de test sur chaque élément du tableau jusqu’à ce que l’un d’eux renvoie false
pour la fonction spécifiée. Cette méthode permet de déterminer si tous les éléments d’un tableau répondent à un critère défini, tel que des valeurs inférieures à un nombre spécifique.
Avec cette méthode, le second paramètre, thisObject
, doit être réglé sur null
si le premier paramètre, callback
, est une fermeture de méthode. Supposons que vous créez une fonction dans un clip appelé me
:
function myFunction(obj:Object):void { //your code here }
Supposons que vous utilisiez ensuite la méthode every()
sur un tableau appelé myArray
:
myArray.every(myFunction, me);
Etant donné que myFunction
appartient à la classe Timeline, qui ne peut pas être remplacée par me
, le moteur d’exécution de Flash renvoie une exception. Pour éviter le renvoi de cette erreur d’exécution, affectez la fonction à une variable, comme suit :
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
Paramètres
callback:Function — Fonction à exécuter sur chaque élément du tableau. Cette fonction peut contenir une comparaison simple (item < 20 , par exemple) ou une opération plus complexe et est appelée avec trois arguments, la valeur d’un élément, l’index de ce dernier et l’objet Array :
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Objet à utiliser comme mot-clé this pour la fonction.
|
Boolean — Valeur booléenne true si tous les éléments du tableau renvoient true pour la fonction spécifiée, false dans tous les autres cas.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
isNumeric
est true
pour le premier tableau et false
pour le deuxième :
package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
filter | () | méthode |
AS3 function filter(callback:Function, thisObject:* = null):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Exécute une fonction de test sur chaque élément du tableau et construit un nouveau tableau contenant tous les éléments qui renvoient true
pour la fonction spécifiée. Si un élément renvoie false
, il ne figure pas dans le nouveau tableau.
Avec cette méthode, le second paramètre, thisObject
, doit être réglé sur null
si le premier paramètre, callback
, est une fermeture de méthode. Supposons que vous créez une fonction dans un clip appelé me
:
function myFunction(obj:Object):void { //your code here }
Supposons que vous utilisez ensuite la méthode filter()
sur un tableau appelé myArray
:
myArray.filter(myFunction, me);
Etant donné que myFunction
appartient à la classe Timeline, qui ne peut pas être remplacée par me
, le moteur d’exécution de Flash renvoie une exception. Pour éviter le renvoi de cette erreur d’exécution, affectez la fonction à une variable, comme suit :
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
Paramètres
callback:Function — Fonction à exécuter sur chaque élément du tableau. Cette fonction peut contenir une comparaison simple (item < 20 , par exemple) ou une opération plus complexe et est appelée avec trois arguments, la valeur d’un élément, l’index de ce dernier et l’objet Array :
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Objet à utiliser comme mot-clé this pour la fonction.
|
Array — Nouveau tableau contenant tous les éléments du tableau d’origine qui ont renvoyé true .
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
package { import flash.display.Sprite; public class Array_filter extends Sprite { public function Array_filter() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace("Employees:"); employees.forEach(traceEmployee); var managers:Array = employees.filter(isManager); trace("Managers:"); managers.forEach(traceEmployee); } private function isManager(element:*, index:int, arr:Array):Boolean { return (element.manager == true); } private function traceEmployee(element:*, index:int, arr:Array):void { trace("\t" + element.name + ((element.manager) ? " (manager)" : "")); } } }
forEach | () | méthode |
AS3 function forEach(callback:Function, thisObject:* = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Exécute une fonction sur chaque élément du tableau.
Avec cette méthode, le second paramètre, thisObject
, doit être réglé sur null
si le premier paramètre, callback
, est une fermeture de méthode. Supposons que vous créez une fonction dans un clip appelé me
:
function myFunction(obj:Object):void { //your code here }
Supposons que vous utilisiez ensuite la méthode forEach()
sur un tableau appelé myArray
:
myArray.forEach(myFunction, me);
Etant donné que myFunction
appartient à la classe Timeline, qui ne peut pas être remplacée par me
, le moteur d’exécution de Flash renvoie une exception. Pour éviter le renvoi de cette erreur d’exécution, affectez la fonction à une variable, comme suit :
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
Paramètres
callback:Function — Fonction à exécuter sur chaque élément du tableau. Cette fonction peut contenir une commande simple (une instruction trace() , par exemple) ou une opération plus complexe et est appelée avec trois arguments, la valeur d’un élément, l’index de ce dernier et l’objet Array :
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — Objet à utiliser comme mot-clé this pour la fonction.
|
Exemple ( Comment utiliser cet exemple )
trace()
de la fonction traceEmployee()
pour tous les éléments du tableau :
package { import flash.display.Sprite; public class Array_forEach extends Sprite { public function Array_forEach() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace(employees); employees.forEach(traceEmployee); } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + ")"); } } }
trace()
à l’aide d’une fonction traceEmployee()
légèrement modifiée pour tous les éléments du tableau :
package { import flash.display.Sprite; public class Array_forEach_2 extends Sprite { public function Array_forEach_2() { var employeeXML:XML = <employees> <employee name="Steven" manager="false" /> <employee name="Bruce" manager="true" /> <employee name="Rob" manager="false" /> </employees>; var employeesList:XMLList = employeeXML.employee; var employeesArray:Array = new Array(); for each (var tempXML:XML in employeesList) { employeesArray.push(tempXML); } employeesArray.sortOn("@name"); employeesArray.forEach(traceEmployee); } private function traceEmployee(element:*, index:Number, arr:Array):void { trace(element.@name + ((element.@manager == "true") ? " (manager)" : "")); } } }
indexOf | () | méthode |
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Recherche un élément dans un tableau en utilisant l’opérateur d’égalité stricte (===
) et renvoie la position d’index de l’élément.
Paramètres
searchElement:* — Elément à trouver dans le tableau.
| |
fromIndex:int (default = 0 ) — Emplacement à partir duquel débuter la recherche d’élément.
|
int — Position d’index commençant à zéro de l’élément du tableau. Si l’argument searchElement n’est pas détecté, la valeur renvoyée est -1.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
package { import flash.display.Sprite; public class Array_indexOf extends Sprite { public function Array_indexOf() { var arr:Array = new Array(123,45,6789); arr.push("123-45-6789"); arr.push("987-65-4321"); var index:int = arr.indexOf("123"); trace(index); // -1 var index2:int = arr.indexOf(123); trace(index2); // 0 } } }
insertAt | () | méthode |
AS3 function insertAt(index:int, element:*):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 19, AIR 19 |
Insertion d’un élément unique dans un tableau. Cette méthode modifie le tableau sans faire de copie.
Paramètres
index:int — Nombre entier spécifiant la position dans le tableau, à l’endroit où l’élément doit être inséré. Vous pouvez utiliser un entier négatif pour définir une position par rapport à la fin du tableau (par exemple, la valeur -1 représente le dernier élément du tableau).
| |
element:* |
join | () | méthode |
AS3 function join(sep:*):String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Convertit les éléments d’un tableau en chaînes, insère le séparateur spécifié entre les éléments, les concatène, puis renvoie la chaîne obtenue. Un tableau imbriqué est toujours séparé par une virgule (,) et non par le séparateur transmis à la méthode join()
.
Paramètres
sep:* (default = NaN ) — Caractère ou chaîne séparant les éléments du tableau dans la chaîne renvoyée. Si vous omettez ce paramètre, une virgule est utilisée en tant que séparateur par défaut.
|
String — Chaîne composée des éléments d’un tableau convertis en chaînes et séparés par le paramètre spécifié.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
myArr
avec les éléments one
, two
et three
, puis une chaîne contenant one and two and three
à l’aide de la méthode join()
.
var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three
specialChars
, avec des éléments (
, )
, -
et un espace blanc, puis crée une chaîne contenant (888) 867-5309
. Ensuite, à l’aide d’une boucle for
, il supprime tous les types de caractères spéciaux qui figurent dans la liste specialChars
pour produire une chaîne (myStr
) qui contient uniquement le numéro de téléphone restant : 888675309
. De plus, il est possible d’ajouter des caractères, tels que +
, à la liste specialChars
pour que la routine fonctionne avec les formats internationaux de numéro de téléphone.
var phoneString:String = "(888) 867-5309"; var specialChars:Array = new Array("(", ")", "-", " "); var myStr:String = phoneString; var ln:uint = specialChars.length; for(var i:uint; i < ln; i++) { myStr = myStr.split(specialChars[i]).join(""); } var phoneNumber:Number = new Number(myStr); trace(phoneString); // (888) 867-5309 trace(phoneNumber); // 8888675309
lastIndexOf | () | méthode |
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Recherche un élément dans un tableau en travaillant à rebours à partir du dernier élément et renvoie la position d’index de l’élément correspondant en utilisant l’opérateur d’égalité stricte (===
).
Paramètres
searchElement:* — Elément à trouver dans le tableau.
| |
fromIndex:int (default = 0x7fffffff ) — Emplacement à partir duquel débuter la recherche d’élément. La valeur par défaut correspond à la valeur maximale autorisée d’un index. Si vous ne spécifiez pas fromIndex , la recherche débute par le dernier élément du tableau.
|
int — Position d’index commençant à zéro de l’élément du tableau. Si l’argument searchElement n’est pas détecté, la valeur renvoyée est -1.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
package { import flash.display.Sprite; public class Array_lastIndexOf extends Sprite { public function Array_lastIndexOf() { var arr:Array = new Array(123,45,6789,123,984,323,123,32); var index:int = arr.indexOf(123); trace(index); // 0 var index2:int = arr.lastIndexOf(123); trace(index2); // 6 } } }
map | () | méthode |
AS3 function map(callback:Function, thisObject:* = null):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Exécute une fonction sur les éléments d’un tableau et construit un nouveau tableau en fonction des résultats de la fonction appliquée à chaque élément du tableau d’origine.
Avec cette méthode, le second paramètre, thisObject
, doit être réglé sur null
si le premier paramètre, callback
, est une fermeture de méthode. Supposons que vous créez une fonction dans un clip appelé me
:
function myFunction(obj:Object):void { //your code here }
Supposons que vous utilisiez ensuite la méthode map()
sur un tableau appelé myArray
:
myArray.map(myFunction, me);
Etant donné que myFunction
appartient à la classe Timeline, qui ne peut pas être remplacée par me
, le moteur d’exécution de Flash renvoie une exception. Pour éviter le renvoi de cette erreur d’exécution, affectez la fonction à une variable, comme suit :
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
Paramètres
callback:Function — Fonction à exécuter sur chaque élément du tableau. Cette fonction peut contenir une commande simple (la modification de la casse des chaînes d’un tableau, par exemple) ou une opération plus complexe et est appelée avec trois arguments, la valeur d’un élément, l’index de ce dernier et l’objet Array :
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — Objet à utiliser comme mot-clé this pour la fonction.
|
Array — Nouveau tableau composé des résultats de la fonction appliquée à chaque élément du tableau d’origine.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
package { import flash.display.Sprite; public class Array_map extends Sprite { public function Array_map() { var arr:Array = new Array("one", "two", "Three"); trace(arr); // one,two,Three var upperArr:Array = arr.map(toUpper); trace(upperArr); // ONE,TWO,THREE } private function toUpper(element:*, index:int, arr:Array):String { return String(element).toUpperCase(); } } }
pop | () | méthode |
AS3 function pop():*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Supprime le dernier élément d’un tableau et renvoie la valeur de cet élément.
Valeur renvoyée* — Valeur du dernier élément (de tout type de données) dans le tableau spécifié.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
letters
, avec les éléments a
, b
et c
. Le dernier élément (c
) est ensuite supprimé du tableau à l’aide de la méthode pop()
et affecté ensuite à l’objet String, letter
.
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c var letter:String = letters.pop(); trace(letters); // a,b trace(letter); // c
push | () | méthode |
AS3 function push(... args):uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ajoute un ou plusieurs éléments à la fin d’un tableau et renvoie la nouvelle longueur du tableau.
Paramètres
... args — Une ou plusieurs valeurs à ajouter au tableau.
|
uint — Entier représentant la longueur du nouveau tableau.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
letters
, puis le remplit avec les éléments a
, b
et c
à l’aide de la méthode push()
.
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
, qui est rempli en premier lieu avec l’élément a
. La méthode push()
est ensuite utilisée une fois pour ajouter les éléments b
et c
à la fin du tableau, soit trois éléments après l’application de la fonction push.
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | méthode |
AS3 function removeAt(index:int):*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 19, AIR 19 |
Suppression d’un élément unique d’un tableau. Cette méthode modifie le tableau sans faire de copie.
Paramètres
index:int — Nombre entier spécifiant l’index de l’élément dans le tableau qui doit être supprimé. Vous pouvez utiliser un entier négatif pour définir une position par rapport à la fin du tableau (par exemple, la valeur -1 représente le dernier élément du tableau).
|
* — L’élément qui a été supprimé du tableau d’origine.
|
reverse | () | méthode |
AS3 function reverse():Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inverse le tableau.
Valeur renvoyéeArray — Nouveau tableau.
|
Plus d’exemples
Exemple ( Comment utiliser cet exemple )
letters
, avec les éléments a
, b
et c
. L’ordre des éléments du tableau est ensuite inversé à l’aide de la méthode reverse()
pour produire le tableau [c,b,a]
.
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a
shift | () | méthode |
AS3 function shift():*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Supprime le premier élément d’un tableau et renvoie cet élément. Les éléments restants du tableau sont décalés de leur position d’origine, i, vers i-1.
Valeur renvoyée* — Premier élément (de tout type de données) d’un tableau.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
letters
, avec les éléments a
, b
et c
. La méthode shift()
est ensuite utilisée pour supprimer le premier élément (a
) dans letters
et l’affecte ensuite à la chaîne firstLetter
.
var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a
slice | () | méthode |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie un nouveau tableau constitué d’un éventail d’éléments issus du tableau d’origine, sans modifier ce dernier. Le tableau renvoyé inclut l’élément startIndex
et tous les éléments, excepté l’élément endIndex
.
Si vous ne transmettez aucun paramètre, le nouveau tableau est une duplication (clone superficiel) du tableau d’origine.
Paramètres
startIndex:int (default = 0 ) — Nombre spécifiant l’index du point de départ pour la découpe. Si startIndex est un nombre négatif, le point de départ se trouve à la fin du tableau, où la valeur -1 est le dernier élément.
| |
endIndex:int (default = 16777215 ) — Nombre spécifiant l’index du point d’arrivée pour la découpe. Si vous omettez ce paramètre, la découpe inclut tous les éléments du point de départ à la fin du tableau. Si endIndex est un nombre négatif, le point d’arrivée spécifié se trouve à la fin du tableau, où la valeur -1 est le dernier élément.
|
Array — Tableau constitué d’un éventail d’éléments issus du tableau d’origine.
|
Plus d’exemples
Exemple ( Comment utiliser cet exemple )
letters
, avec les éléments [a,b,c,d,e,f]
. Le tableau someLetters
est ensuite créé en appelant la méthode slice()
sur les éléments un (b
) à trois (d
), ce qui résulte en un tableau avec les éléments b
et c
.
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c
letters
avec les éléments [a,b,c,d,e,f]
. Le tableau someLetters
est ensuite créé en appelant la méthode slice()
sur l’élément deux (c
), ce qui résulte en un tableau avec des éléments [c,d,e,f]
.
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(2); trace(letters); // a,b,c,d,e,f trace(someLetters); // c,d,e,f
letters
, avec les éléments [a,b,c,d,e,f]
. Le tableau someLetters
est ensuite créé en appelant la méthode slice()
du deuxième au dernier élément à partir de la fin (e
), ce qui résulte en un tableau avec les éléments e
et f
.
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(-2); trace(letters); // a,b,c,d,e,f trace(someLetters); // e,f
some | () | méthode |
AS3 function some(callback:Function, thisObject:* = null):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Exécute une fonction de test sur chaque élément du tableau jusqu’à ce que l’un d’eux renvoie true
. Cette méthode vous permet de déterminer si un élément de tableau répond au critère défini, tel qu’une valeur inférieure à un nombre spécifique.
Avec cette méthode, le second paramètre, thisObject
, doit être réglé sur null
si le premier paramètre, callback
, est une fermeture de méthode. Supposons que vous créez une fonction dans un clip appelé me
:
function myFunction(obj:Object):void { //your code here }
Supposons que vous utilisiez ensuite la méthode some()
sur un tableau appelé myArray
:
myArray.some(myFunction, me);
Etant donné que myFunction
appartient à la classe Timeline, qui ne peut pas être remplacée par me
, le moteur d’exécution de Flash renvoie une exception. Pour éviter le renvoi de cette erreur d’exécution, affectez la fonction à une variable, comme suit :
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
Paramètres
callback:Function — Fonction à exécuter sur chaque élément du tableau. Cette fonction peut contenir une comparaison simple (item < 20 , par exemple) ou une opération plus complexe et est appelée avec trois arguments, la valeur d’un élément, l’index de ce dernier et l’objet Array :
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Objet à utiliser comme mot-clé this pour la fonction.
|
Boolean — Valeur booléenne true si un élément du tableau renvoie true pour la fonction spécifiée, false dans tous les autres cas.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
package { import flash.display.Sprite; public class Array_some extends Sprite { public function Array_some() { var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); } } }
sort | () | méthode |
AS3 function sort(... args):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Trie les éléments d’un tableau. Cette méthode trie selon les valeurs Unicode (ASCII est un sous-ensemble de Unicode).
Par défaut, Array
.sort()
fonctionne de la façon suivante :
- Le tri tient compte de la casse (Z précède a).
- Le tri est ascendant (a précède b).
- Le tableau est modifié afin de refléter l’ordre de tri ; les éléments multiples dont les champs de tri sont identiques sont placés consécutivement dans le tableau trié dans un ordre quelconque.
- Tous les éléments, quel que soit leur type de données, sont triés comme s’il s’agissait de chaînes : ainsi, 100 précède 99 car « 1 » est une valeur de chaîne inférieure à « 9 ».
Pour trier un tableau à l’aide de réglages autres que les réglages par défaut, vous pouvez utiliser l’une des options de tri décrites dans la section sortOptions
de la description du paramètre ...args
ou vous pouvez créer une fonction personnalisée. Si vous créez une fonction personnalisée, vous pouvez appeler la méthode sort()
et utiliser le nom de votre fonction personnalisée en tant que premier argument (compareFunction
).
Paramètres
... args — Les arguments spécifiant une fonction de comparaison et une ou plusieurs valeurs qui déterminent le comportement du tri.
Cette méthode utilise la syntaxe et l’ordre des arguments de
|
Array — La valeur renvoyée varie selon que vous transmettez ou non des arguments, comme décrit dans la liste suivante :
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
vegetables
, avec les éléments suivants [spinach, green pepper, cilantro, onion, avocado]
. Le tableau est ensuite trié en fonction de la méthode sort()
, qui est appelée sans paramètres. Le résultat est que vegetables
est trié par ordre alphabétique ([avocado, cilantro, green pepper, onion, spinach]
).
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); trace(vegetables); // spinach,green pepper,cilantro,onion,avocado vegetables.sort(); trace(vegetables); // avocado,cilantro,green pepper,onion,spinach
vegetables
, avec les éléments suivants [spinach, green pepper, Cilantro, Onion et Avocado]
. Le tableau est ensuite trié avec la méthode sort()
, qui est appelée sans paramètres pour la première fois. Le résultat en est [Avocado,Cilantro,Onion,green pepper,spinach]
. La fonction sort()
est ensuite appelée à nouveau sur vegetables
et utilise la constante CASEINSENSITIVE
en tant que paramètre. Le résultat est que vegetables
est trié par ordre alphabétique ([Avocado, Cilantro, green pepper, Onion, spinach]
).
var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach
vegetables
, qui est ensuite rempli par cinq appels à la fonction push()
. A chaque fois que push()
est appelé, un nouvel objet Vegetable
est créé par un appel au constructeur Vegetable()
, qui accepte un objet de type chaîne (name
) et un autre de type numérique (price
). Cinq appels consécutifs de la fonction push()
avec les valeurs indiquées produisent le tableau suivant : [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. La méthode sort()
est ensuite utilisée pour trier le tableau, ce qui produit le tableau [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
.
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 //The following code defines the Vegetable class class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
sort()
est utilisée avec une fonction de tri personnalisée (sortOnPrice
), qui effectue le tri en fonction du prix et non pas par ordre alphabétique. Vous pouvez constater que la nouvelle fonction, getPrice()
, extrait le prix.
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(sortOnPrice); trace(vegetables); // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99 function sortOnPrice(a:Vegetable, b:Vegetable):Number { var aPrice:Number = a.getPrice(); var bPrice:Number = b.getPrice(); if(aPrice > bPrice) { return 1; } else if(aPrice < bPrice) { return -1; } else { //aPrice == bPrice return 0; } } // The following code defines the Vegetable class and should be in a separate package. class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function getPrice():Number { return price; } public function toString():String { return " " + name + ":" + price; } }
numbers
, avec les éléments [3,5,100,34,10]
. Tout appel sans paramètre à la fonction sort()
produirait un résultat indésirable [10,100,3,34,5]
. Afin de trier correctement les valeurs numériques, vous devez transmettre la constante NUMERIC
à la méthode sort()
, qui trie numbers
de la façon suivante : [3,5,10,34,100]
.
Remarque : Le comportement par défaut de la fonction sort()
traite chaque entité comme une chaîne. Si vous utilisez l’argument Array.NUMERIC
, le moteur d’exécution de Flash tente de convertir les valeurs non numériques en entiers à des fins de tri. Si cette opération échoue, le moteur d’exécution renvoie une erreur. Par exemple, le moteur d’exécution peut convertir correctement une valeur de chaîne de "6"
en nombre entier, mais renvoie une erreur s’il rencontre une valeur de chaîne de "six"
.
var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
sortOn | () | méthode |
AS3 function sortOn(fieldName:Object, options:Object = null):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Trie les éléments d’un tableau selon un ou plusieurs champs du tableau. Le tableau doit être doté des caractéristiques suivantes :
- Le tableau est indexé et non associatif.
- Chaque élément du tableau contient un objet doté d’une ou de plusieurs propriétés.
- Tous les objets ont au moins une propriété en commun dont les valeurs peuvent être utilisées pour trier le tableau. Ce type de propriété est connu sous le nom de field.
Si vous transmettez plusieurs paramètres fieldName
, le premier champ représente le champ de tri principal, le deuxième représente le champ de tri suivant, etc. Flash trie selon les valeurs Unicode (ASCII est un sous-ensemble de Unicode). Si l’un des éléments comparés ne contient pas le champ spécifié dans le paramètre fieldName
, le champ est considéré comme étant réglé sur undefined
et les éléments sont placés de manière consécutive dans le tableau trié dans un ordre quelconque.
Par défaut, Array
.sortOn()
fonctionne de la façon suivante :
- Le tri tient compte de la casse (Z précède a).
- Le tri est ascendant (a précède b).
- Le tableau est modifié afin de refléter l’ordre de tri ; les éléments multiples dont les champs de tri sont identiques sont placés consécutivement dans le tableau trié dans un ordre quelconque.
- Les champs numériques sont triés comme s’il s’agissait de chaînes : ainsi, 100 précède 99 car « 1 » est une valeur de chaîne inférieure à « 9 ».
Flash Player 7 a ajouté le paramètre options
, que vous pouvez utiliser pour annuler le comportement de tri par défaut. Pour trier un tableau simple (par exemple, un tableau contenant un seul champ) ou pour spécifier un ordre de tri non pris en charge par le paramètre options
, utilisez Array.sort()
.
Pour définir plusieurs indicateurs, séparez-les à l’aide de l’opérateur OR (|
) au niveau du bit :
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
La fonctionnalité ajoutée à Flash Player 8 permet de spécifier une option de tri différente pour chaque champ lors d’un tri selon plusieurs champs. Dans Flash Player 8 et les versions ultérieures, le paramètre options
accepte un tableau d’options de tri de telle sorte que chaque option de tri correspond à un champ de tri dans le paramètre fieldName
. L’exemple suivant trie le champ de tri principal, a
, selon un tri décroissant, le deuxième champ de tri, b
, selon un tri numérique et le troisième champ de tri, c
, selon un tri non sensible à la casse :
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
Remarque : les tableaux fieldName
et options
doivent contenir le même nombre d’éléments ; sinon, le tableau options
est ignoré. En outre, les options Array.UNIQUESORT
et Array.RETURNINDEXEDARRAY
ne peuvent être utilisées qu’en tant que premier élément du tableau, sinon elles sont ignorées.
Paramètres
fieldName:Object — Chaîne identifiant un champ à utiliser en tant que valeur de tri ou un tableau dans lequel le premier élément représente le champ de tri principal, le deuxième le champ de tri secondaire, etc.
| |
options:Object (default = null ) — Un ou plusieurs nombres ou noms de constantes définies, séparés par l’opérateur bitwise OR (|) , qui modifient le comportement de tri. Les valeurs suivantes sont valides pour le paramètre options :
Les conseils de code sont activés si vous utilisez le format chaîne de l’indicateur (par exemple, |
Array — La valeur renvoyée varie selon que vous transmettez ou non des paramètres :
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
vegetables
. Le tableau est ensuite rempli par cinq appels à la fonction push()
. A chaque fois que push()
est appelé, un nouvel objet Vegetable
est créé par un appel au constructeur Vegetable()
, qui accepte un objet de type chaîne (name
) et un autre de type numérique (price
). Cinq appels consécutifs de la fonction push()
avec les valeurs indiquées produisent le tableau suivant : [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. La méthode sortOn()
est ensuite utilisée avec le paramètre name
pour produire le tableau suivant : [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
. La méthode sortOn()
est ensuite appelée à nouveau avec le paramètre price et les constantes NUMERIC et DESCENDING pour produire un tableau trié de façon numérique en ordre décroissant : [asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29]
.
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sortOn("name"); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING); trace(vegetables); // asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29 class Vegetable { public var name:String; public var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
records
. Le tableau est ensuite rempli par trois appels à la fonction push()
. Lorsque push()
est appelé, les chaînes name
et city
, ainsi que le numéro zip
sont ajoutés à records
. Trois boucles for
sont utilisées pour imprimer les éléments du tableau. La première boucle for
imprime les éléments dans leur ordre d’insertion. La deuxième boucle for
s’exécute après le tri de records
en fonction de « name », puis de « city » à l’aide de la méthode sortOn()
. La troisième boucle for
a un résultat différent dans la mesure où records
est trié de nouveau en fonction « city », puis « name ».
var records:Array = new Array(); records.push({name:"john", city:"omaha", zip:68144}); records.push({name:"john", city:"kansas city", zip:72345}); records.push({name:"bob", city:"omaha", zip:94010}); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha trace("records.sortOn('name', 'city');"); records.sortOn(["name", "city"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha trace("records.sortOn('city', 'name');"); records.sortOn(["city", "name"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha
users
. Le tableau est ensuite rempli par quatre appels à la fonction push()
. Lorsque push()
est appelée, un objet User est créé à l’aide du constructeur User()
, puis la chaîne name
et l’uint age
sont ajoutés aux utilisateurs. Le tableau suivant en résulte [Bob:3,barb:35,abcd:3,catchy:4]
.
Ce tableau est ensuite trié des façons suivantes :
- Par nom uniquement, pour obtenir
[Bob:3,barb:35,abcd:3,catchy:4]
. - Par nom uniquement et avec la constante
CASEINSENSITIVE
, pour obtenir le tableau[abcd:3,barb:35,Bob:3,catchy:4]
. - Par nom uniquement et avec les constantes
CASEINSENSITIVE
etDESCENDING
, pour obtenir le tableau[catchy:4,Bob:3,barb:35,abcd:3]
. - Par nom uniquement, pour obtenir le tableau
[abcd:3,Bob:3,barb:35,catchy:4]
. - Par nom uniquement et avec la constante
NUMERIC
, pour obtenir le tableau[Bob:3,abcd:3,catchy:4,barb:35]
. - Par nom uniquement et avec les constantes
CASEINSENSITIVE
etNUMERIC
, pour obtenir le tableau[barb:35,catchy:4,Bob:3,abcd:3]
.
Un tableau appelé indices
est ensuite créé et reçoit les résultats du tri en fonction de l’âge et avec les constantes NUMERIC
et RETURNINDEXEDARRAY
, ce qui produit le tableau [Bob:3,abcd:3,catchy:4,barb:35]
, qui est ensuite imprimé avec une boucle for
.
class User { public var name:String; public var age:Number; public function User(name:String, age:uint) { this.name = name; this.age = age; } public function toString():String { return this.name + ":" + this.age; } } var users:Array = new Array(); users.push(new User("Bob", 3)); users.push(new User("barb", 35)); users.push(new User("abcd", 3)); users.push(new User("catchy", 4)); trace(users); // Bob:3,barb:35,abcd:3,catchy:4 users.sortOn("name"); trace(users); // Bob:3,abcd:3,barb:35,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE); trace(users); // abcd:3,barb:35,Bob:3,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING); trace(users); // catchy:4,Bob:3,barb:35,abcd:3 users.sortOn("age"); trace(users); // abcd:3,Bob:3,barb:35,catchy:4 users.sortOn("age", Array.NUMERIC); trace(users); // Bob:3,abcd:3,catchy:4,barb:35 users.sortOn("age", Array.DESCENDING | Array.NUMERIC); trace(users); // barb:35,catchy:4,Bob:3,abcd:3 var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY); var index:uint; for(var i:uint = 0; i < indices.length; i++) { index = indices[i]; trace(users[index].name, ": " + users[index].age); } // Results: // Bob : 3 // abcd : 3 // catchy : 4 // barb : 35
splice | () | méthode |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ajoute et supprime des éléments dans un tableau. Cette méthode modifie le tableau sans faire de copie.
Remarque : pour annuler cette méthode dans une sous-classe de Array, utilisez ...args
pour les paramètres, comme indiqué dans l’exemple ci-dessous :
public override function splice(...args) { // your statements here }
Paramètres
startIndex:int — Entier spécifiant l’index de la position d’insertion ou de suppression de l’élément dans le tableau. Vous pouvez utiliser un entier négatif pour définir une position par rapport à la fin du tableau (par exemple, la valeur -1 représente le dernier élément du tableau).
| |
deleteCount:uint — Entier spécifiant le nombre d’éléments à supprimer. Ce nombre inclut l’élément spécifié dans le paramètre startIndex . Si vous ne spécifiez pas de valeur pour le paramètre deleteCount , la méthode supprime toutes les valeurs comprises entre l’élément startIndex et le dernier élément du tableau. Si la valeur est 0, aucun élément n’est supprimé.
| |
... values — Liste facultative d’une ou de plusieurs valeurs séparées par une virgule à insérer dans le tableau à la position spécifiée par le paramètre startIndex . Si une valeur insérée est de type Array, le tableau est maintenu intact et inséré comme élément unique. Par exemple, si vous joignez un tableau de longueur trois à un autre tableau de longueur trois, le tableau qui en résulte ne comporte que quatre éléments. l’un des éléments est toutefois un tableau de longueur trois.
|
Array — Tableau contenant les éléments supprimés du tableau d’origine.
|
Plus d’exemples
Exemple ( Comment utiliser cet exemple )
vegetables
, avec les éléments suivants [spinach, green pepper, cilantro, onion, avocado]
. La méthode splice()
est ensuite appelée avec les paramètres 2 et 2, qui affecte cilantro
et onion
au tableau spliced
. Le tableau vegetables
contient ensuite [spinach,green pepper,avocado]
. La méthode splice()
est appelée une deuxième fois avec les paramètres 1, 0 et le tableau spliced
pour affecter [cilantro,onion]
en tant que deuxième élément dans vegetables
.
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
cilantro
et onion
renvoient des résultats qui laissent entendre que vegetables
comporte 5 éléments, alors que cet objet n’en comporte que quatre (et le deuxième élément est en fait un tableau qui contient deux éléments). Pour ajouter cilantro
et onion
de façon individuelle, utilisez :
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, "cilantro", "onion"); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString | () | méthode |
public function toLocaleString():String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie une chaîne représentant les éléments du tableau spécifié. Chaque élément du tableau, de la position d’index 0 à la position d’index la plus élevée, est converti en chaîne concaténée et séparé par des virgules. Dans l’implémentation d’ActionScript 3.0, cette méthode renvoie la même valeur que la méthode Array.toString()
.
String — Chaîne d’éléments de tableau.
|
Eléments de l’API associés
toString | () | méthode |
public function toString():String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie une chaîne représentant les éléments du tableau spécifié. Chaque élément du tableau, de la position d’index 0 à la position d’index la plus élevée, est converti en chaîne concaténée et séparé par des virgules. Pour spécifier un séparateur personnalisé, utilisez la méthode Array.join()
.
String — Chaîne d’éléments de tableau.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
vegnums
du type de données String.
var vegetables:Array = new Array(); vegetables.push(1); vegetables.push(2); vegetables.push(3); vegetables.push(4); vegetables.push(5); var vegnums:String = vegetables.toString(); trace(vegnums+",6"); // 1,2,3,4,5,6
unshift | () | méthode |
AS3 function unshift(... args):uint
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ajoute un ou plusieurs éléments au début d’un tableau et renvoie la nouvelle longueur du tableau. Les autres éléments du tableau sont décalés de leur position d’origine, i, vers i+1.
Paramètres
... args — Un ou plusieurs nombres, éléments ou variables à insérer au début du tableau.
|
uint — Entier représentant la nouvelle longueur du tableau.
|
Plus d’exemples
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
names
. Les chaînes Bill
et Jeff
sont ajoutées à la méthode push()
, puis les chaînes Alfred
et Kyle
sont ajoutées au début de ces noms
au moyen de deux appels à la méthode unshift()
.
var names:Array = new Array(); names.push("Bill"); names.push("Jeff"); trace(names); // Bill,Jeff names.unshift("Alfred"); names.unshift("Kyle"); trace(names); // Kyle,Alfred,Bill,Jeff
CASEINSENSITIVE | Constante |
public static const CASEINSENSITIVE:uint = 1
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie un tri sans respect de la casse pour les méthodes de tri de la classe Array. Vous pouvez utiliser cette constante pour le paramètre options
de la méthode sort()
ou sortOn()
.
La valeur de cette constante est 1.
Eléments de l’API associés
DESCENDING | Constante |
public static const DESCENDING:uint = 2
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie un tri par ordre décroissant pour les méthodes de tri de la classe Array. Vous pouvez utiliser cette constante pour le paramètre options
de la méthode sort()
ou sortOn()
.
La valeur de cette constante est 2.
Eléments de l’API associés
NUMERIC | Constante |
public static const NUMERIC:uint = 16
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie un tri numérique (et non de type chaîne de caractères) pour les méthodes de tri de la classe Array. Si vous incluez cette constante au paramètre options
, les méthodes sort()
et sortOn()
sont obligées de trier les nombres en tant que valeurs numériques, et non en tant que chaînes de caractères numériques. Si vous ne spécifiez pas la constante NUMERIC
, le tri traite chaque élément de tableau en tant que chaîne de caractères et donne les résultats selon l’ordre Unicode.
Supposons par exemple que vous disposez du tableau de valeurs [2005, 7, 35]
. Si la constante NUMERIC
n’est pas incluse dans le paramètre options
, le tableau trié correspond à [2005, 35, 7]
, mais si la constante NUMERIC
est incluse, le tableau trié correspond à [7, 35, 2005]
.
Cette constante s’applique uniquement aux nombres contenus dans le tableau ; elle ne s’applique pas aux chaînes qui contiennent des données numériques telles que ["23", "5"]
.
La valeur de cette constante est 16.
Eléments de l’API associés
RETURNINDEXEDARRAY | Constante |
public static const RETURNINDEXEDARRAY:uint = 8
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie que le tri renvoie un tableau composé d’index de tableau. Vous pouvez utiliser cette constante dans le paramètre options
de la méthode sort()
ou sortOn()
, afin de disposer de plusieurs vues des éléments du tableau sans modifier le tableau d’origine.
La valeur de cette constante est 8.
Eléments de l’API associés
UNIQUESORT | Constante |
public static const UNIQUESORT:uint = 4
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spécifie le critère de tri unique pour les méthodes de tri de la classe Array. Vous pouvez utiliser cette constante pour le paramètre options
de la méthode sort()
ou sortOn()
. L’option de tri unique met fin au tri si deux éléments ou champs triés ont des valeurs identiques.
La valeur de cette constante est 4.
Eléments de l’API associés
myArr
, sans argument et avec une longueur initiale de 0 :
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Tue Jun 12 2018, 09:30 AM Z