Déclaration de tableau
Au même titre que toutes les autres données de JScript, les variables peuvent stocker des tableaux. L'annotation de type peut spécifier qu'une variable doit contenir un objet Array ou un tableau typé, mais elle ne fournit pas de tableau initial. Pour stocker un tableau dans une variable, vous devez déclarer un tableau et l'assigner à cette variable.
La déclaration d'un objet Array JScript crée un nouvel objet Array, tandis que la déclaration d'un tableau typé réserve une section de la mémoire suffisamment importante pour y stocker tous les éléments du tableau. Les deux types de tableaux peuvent être déclarés d'une part en utilisant l'opérateur new afin de construire explicitement un nouveau tableau, d'autre part en utilisant un littéral de tableau.
Déclaration de tableau avec l'opérateur new
Pour déclarer un nouvel objet Array JScript, vous pouvez utiliser l'opérateur new avec le constructeur Array. Dans la mesure où vous pouvez ajouter dynamiquement des membres à un tableau JScript, il n'est pas nécessaire de spécifier une taille initiale pour le tableau. Dans cet exemple, a1 est assigné d'un tableau de longueur zéro.
var a1 = new Array();
Pour assigner une longueur initiale au tableau créé avec le constructeur Array, passez un entier au constructeur Array. La longueur du tableau doit être zéro ou un entier positif. Le code suivant assigne un tableau de longueur 10 à a2.
var a2 = new Array(10);
Si plusieurs paramètres, ou un seul paramètre non numérique, sont passés au constructeur Array, le tableau résultant contient tous les paramètres en tant qu'éléments du tableau. Par exemple, le code suivant crée un tableau dans lequel l'élément 0 est le numéro 10, l'élément 1 la chaîne « Hello » et l'élément 2 la date du jour.
var a3 = new Array(10, "Hello", Date());
L'opérateur new peut également déclarer des tableaux typés. Dans la mesure où les tableaux typés ne peuvent pas accepter des éléments ajoutés dynamiquement, la déclaration doit spécifier la taille du tableau. Le constructeur de tableaux typés utilise des crochets plutôt que des parenthèses pour entourer la taille du tableau. À titre d'exemple, le code suivant déclare un tableau de cinq entiers.
var i1 : int[] = new int[5];
L'opérateur new peut également déclarer des tableaux multidimensionnels. L'exemple suivant déclare un tableau d'entiers de trois fois quatre sur cinq.
var i2 : int[,,] = new int[3,4,5];
Lors de la déclaration d'un tableau de tableaux, le tableau de base doit être déclaré avant les sous-tableaux ; ils ne peuvent pas être tous déclarés en même temps. Vous disposez ainsi d'une grande souplesse pour définir les tailles des sous-tableaux. Dans cet exemple, le premier sous-tableau a la longueur 1, le deuxième la longueur 2, etc.
// First, declare a typed array of type int[], and initialize it.
var i3 : int[][] = new (int[])[4];
// Second, initialize the subarrays.
for(var i=0; i<4; i++)
i3[i] = new int[i+1];
Déclaration de tableaux avec des littéraux de tableau
Pour déclarer et initialiser des tableaux, une autre possibilité consiste à utiliser des littéraux de tableau. Un littéral de tableau représente un objet Array JScript. En outre, dans la mesure où les tableaux JScript opèrent conjointement avec des tableaux typés, les littéraux peuvent également être utilisés pour initialiser des tableaux typés. Pour plus d'informations, consultez Données de tableau.
Des littéraux de tableau peuvent facilement initialiser des tableaux unidimensionnels. Notez que le compilateur tentera de convertir les données d'un littéral de tableau en type correct lors de son assignation à un tableau typé. Dans cet exemple, un littéral de tableau est assigné à un tableau JScript et à un tableau typé.
var al1 : Array = [1,2,"3"];
var il1 : int[] = [1,2,"3"];
Les littéraux de tableau peuvent également initialiser des tableaux de tableaux. Dans l'exemple suivant, un tableau de deux tableaux d'entiers initialise le tableau JScript et le tableau typé.
var al1 : Array = [[1,2,3],[4,5,6]];
var il1 : int[][] = [[1,2,3],[4,5,6]];
Les littéraux de tableau ne peuvent pas initialiser des tableaux typés multidimensionnels.