Array, objet JScript
Un objet Array est une variable qui regroupe des données connexes. Un numéro unique, appelé index ou indice, fait référence à chacune des données d'un tableau. Pour accéder aux données stockées dans le tableau, l'identificateur du tableau et l'index sont combinés avec l'opérateur index "[]", par exemple, theMonths[0].
Création d'un tableau
Pour créer un nouveau tableau, utilisez l'opérateur new et le constructeur Array. Dans cet exemple, le constructeur de tableau est utilisé pour construire un tableau d'une longueur égale à 12. Les données sont ensuite introduites dans le tableau.
var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";
Lorsque vous créez un tableau à l'aide du mot clé Array, JScript inclut une propriété length qui enregistre le nombre d'entrées. Si vous ne spécifiez pas de nombre, la longueur est définie à la valeur 0 et le tableau ne comporte aucune entrée. Si vous spécifiez un nombre, il détermine la longueur. Si vous spécifiez plusieurs paramètres, ces derniers sont utilisés comme entrées du tableau. De plus, le nombre de paramètres est assigné à la propriété length comme dans l'exemple suivant, qui équivaut à l'exemple précédent.
var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
Les littéraux de tableau fournissent une autre technique d'entrée de données dans un tableau. Pour plus d'informations, consultez Données de tableau.
L'objet Array stocke des tableaux creux. Autrement dit, si un tableau comporte trois éléments numérotés 0, 1 et 2, l'élément 50 peut exister sans la présence des éléments 3 à 49. JScript modifie automatiquement la valeur de la propriété length lorsque vous ajoutez des éléments à un objet Array. Les index de tableau de JScript commencent toujours à 0, jamais à 1, de sorte que la propriété length est toujours supérieure de un à l'index le plus élevé du tableau.
Utilisation des propriétés expando des tableaux
Tous les objets Array, à l'instar de tout autre objet basé sur l'objet Object JScript, prennent en charge les propriétés expando. Les propriétés expando sont des nouvelles propriétés que vous ajoutez et supprimez dynamiquement d'un tableau, comme les indices de tableau. À la différence des indices de tableau, qui doivent être des entiers, les propriétés expando sont des chaînes. Par ailleurs, l'ajout ou la suppression de propriétés expando n'affecte pas la propriété length.
Par exemple :
// Initialize an array with three elements.
var myArray = new Array("Hello", 42, new Date(2000,1,1));
print(myArray.length); // Prints 3.
// Add some expando properties. They will not change the length.
myArray.expando = "JScript";
myArray["another Expando"] = "Windows";
print(myArray.length); // Still prints 3.
Tableaux typés
Pour obtenir le tableau theMonths illustré ci-dessus, un autre moyen plus rapide consiste à créer un tableau typé (natif), comme ici un tableau de chaînes :
var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
L'accès aux éléments des tableaux typés peut être plus rapide que celui des éléments d'objets Array JScript. Les tableaux typés sont compatibles avec les tableaux d'autres langages du .NET Framework et aident à fournir la sécurité de type.
Les objets Array JScript offrent une grande souplesse et s'avèrent très utiles pour les listes, les files d'attente, les piles, etc. En revanche, les tableaux natifs sont plus appropriés pour le stockage des éléments de taille fixe et de même type. En général, à moins que vous n'ayez besoin des fonctionnalités spéciales de l'objet Array (le redimensionnement dynamique, etc.), il est préférable d'utiliser les tableaux typés.
Toutes les méthodes Array JScript non destructrices (les méthodes qui ne modifient pas la longueur) peuvent être appelées sur des tableaux typés.