 |
 |
 |
 |
  | Permet de travailler avec des tableaux. Syntaxe var tab1 = new Array(longueurDuTableau); var tab2 = new Array(élément0, élément1, ..., élémentN); La forme littérale est : var lit = [élément0, élément1, ..., élémentN]; Paramètres longueurDuTableau la longueur initiale du tableau. On peut y accéder à l'aide de la propriété length. Si la valeur spécifiée n'est pas un nombre, un tableau de longueur 1 est créé, dont le premier élément a la valeur spécifiée. La longueur maximale permise pour un tableau est 4 294 967 295. élémentN une valeurs pour l'élément à cette position dans le tableau. Lorsqu'il est déclaré sous cette forme, un tableau est initialisé avec les valeurs spécifiées de ces éléments, et sa propriété length est définie par le nombre de ces valeurs. Description Un tableau est un ensemble ordonné de valeurs associé à un seul nom de variable. Notez qu'il ne faut pas l'utiliser comme un tableau associatif (en), utilisez plutôt Object pour cela. L'exemple suivant crée un objet Array depuis sa forme littérale. Le tableau boissons contient trois éléments et a une longueur de 3 : var boissons = ["Café", "Thé", "Chocolat"]; Un tableau dense, de deux éléments ou plus, commençant à l'indice 0, peut être construit en définissant des valeurs initiales pour tous les éléments. Un tableau dense est un tableau dont chaque élément a une valeur. La ligne suivante crée un tableau dense de trois éléments : var monTableau = new Array("Hello", maVariable, 3.14159); Indices dans un tableau Les éléments d'un tableau sont indexés par leur numéro d'ordre. Par exemple, supposons que le tableau suivant soit défini : var monTableau = new Array("Vent", "Pluie", "Feu"); Il est ensuite possible de faire référence aux éléments de la manière suivante : • monTableau[0] est le premier élément • monTableau[1] est le second élément • monTableau[2] est le troisième élément Spécification d'un seul paramètre Lorsqu'un seul paramètre numérique est spécifié pour le constructeur Array, il s'agit de la longueur initiale du tableau. Le code suivant crée un tableau de cinq éléments : var modeDePaiement = new Array(5); Le comportement du constructeur Array dépend de la nature du paramètre unique. • Si la valeur spécifiée est un nombre, le constructeur le convertit en un entier positif sur 32 bits et génère un tableau dont la propriété length (taille du tableau) est ce nombre entier. Le tableau ne contient au départ aucun élément, même s'il a une longueur non nulle. • Si la valeur spécifiée n'est pas un nombre, un tableau de longueur 1 est créé, dont le premier élément a la valeur spécifiée. Le code suivant crée un tableau de longueur 25, et assigne ensuite des valeurs aux trois premiers éléments : var typesDeMusique = new Array(25); typesDeMusique[0] = "R&B"; typesDeMusique[1] = "Blues"; typesDeMusique[2] = "Jazz"; Augmentation indirecte de la taille d'un tableau La longueur d'un tableau augmente si une valeur est assignée à un élément d'indice plus élevé que la longueur actuelle du tableau. Le code qui suit crée un tableau de longueur zéro, puis assigne une valeur à l'élément 99. La longueur du tableau sera alors 100. var couleurs = new Array(); couleurs[99] = "bleu nuit"; Création d'un tableau à l'aide du résultat d'une expression rationnelle Le résultat d'une correspondance entre une expression rationnelle et une chaîne peut produire un tableau. Ce tableau dispose de propriétés et d'éléments fournissant des informations sur la correspondance trouvée. Les méthodes RegExp.exec, String.match et String.replace renvoient des tableaux. Pour mieux comprendre ces propriétés et éléments, examinons l'exemple ci-dessous en se référant au tableau qui suit : // Trouve un d, suivi d'un ou plusieurs b, suivis d'un d // Retient la série de b et le d qui suit // Ignore la casse
var expr = /d(b+)(d)/i; var monTableau = expr.exec("cdbBdbsbz"); Les propriétés et éléments renvoyés par cette instruction sont les suivantes :
Propriété/Élément
|
Description
|
Exemple
|
input
|
Une propriété en lecture seule qui reflète la chaîne originale sur laquelle l'expression rationnelle a été exécutée.
|
cdbBdbsbz
|
index
|
Une propriété en lecture seule qui est l'indice (à partir de zéro) de la correspondance trouvée dans la chaîne.
|
1
|
[0]
|
Un élément en lecture seule indiquant les derniers caractères trouvés.
|
dbBd
|
[1], ...[n]
|
Éléments en lecture seule reprenant les correspondances des sous-chaînes entre parenthèses, si l'expression rationnelle en contient. Le nombre de sous-chaînes possibles est illimité.
|
[1]: bB [2]: d
|
Propriétés Pour les propriétés héritées par les instances de Array consultez Propriétés des instances de Array. prototype Permet d'ajouter des propriétés à tous les objets de ce type.
Propriétés héritées de Function.prototype caller, constructor, length, name
Méthodes Pour les méthodes héritées par les instances de Array consultez Méthodes des instances de Array. Bien que l'objet global Array ne contienne aucune méthode en tant que tel, il hérite de certaines d'entre-elles au travers de la chaîne de prototypes. Méthodes héritées de Function.prototype apply, call, toSource, toString, valueOf Méthodes héritées de Object.prototype __defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch
Instances de Array Les instances d'</div>Array</code> héritent de R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core:Objets_globaux:Array:prototypeArray.prototype. Comme avec tous les constructeurs, il est possible de changer l'objet prototype du constructeur pour effectuer des modifications à toutes les instances d'<code>Array. === Propriétés === constructor Spécifie la fonction de création du prototype d'un objet. index Ceci est une pseudo-propriété des prototypes d'Array car elle n'est pas héritée par défaut. Elle n'est en fait présente que dans les tableaux créés par des résultats d'expressions rationnelles. La propriété représente alors l'indice (à partir de zéro) de la correspondance dans la chaîne. input Cette propriété n'est présente que dans les tableaux créés par des résultats d'expressions rationnelles. Elle reflète la chaîne originale sur laquelle l'expression rationnelle a été vérifiée. length Reflète le nombre d'éléments dans le tableau. === Méthodes === ==== Méthodes de modification ==== Ces méthodes modifient le tableau : pop Retire le dernier élément du tableau et renvoie cet élément. push Ajoute un ou plusieurs éléments en fin de tableau et renvoie la nouvelle longueur du tableau. reverse Inverse l'ordre des éléments du tableau — le premier devient le dernier, et le dernier devient le premier. shift Retire le premier élément du tableau et renvoie cet élément. sort Trie les éléments du tableau. splice Ajoute ou retire des éléments du tableau. unshift Ajoute un ou plusieurs éléments en début de tableau et renvoie la nouvelle longueur du tableau. ==== Méthodes d'accès ====
Ces méthodes ne modifient pas le tableau mais en renvoient une certaine représentation. concat Renvoie un nouveau tableau formé du tableau original joint à d'autres tableaux ou valeurs. join Joint tous les éléments du tableau dans une chaîne. slice Extrait une section d'un tableau et renvoie un nouveau tableau. toSource Non standard Renvoie une représentation littérale du tableau spécifié ; celle-ci peut être utilisée pour créer un nouveau tableau. Remplace la méthode Object.prototype.toSource. toString Renvoie une chaîne représentant le tableau et ses éléments. Remplace la méthode Object.prototype.toString.
Introduit dans JavaScript 1.6 indexOf Renvoie la position (indexée à partir de 0) du premier élément au sein du tableau égal à la valeur spécifiée, ou -1 si la valeur n'a pas été trouvée. lastIndexOf Renvoie la position (indexée à partir de 0) du dernier élément égal à la valeur spécifiée au sein du tableau, ou -1 si la valeur n'a pas été trouvée. ==== Méthodes d'itération ====
Introduit dans JavaScript 1.6 Plusieurs méthodes reçoivent en paramètre des fonctions à rappeler au cours du traitement du tableau. Lorsqu'elles sont appelées, la propriété length du tableau est mesurée, et tout élément ajouté au-delà de cette valeur depuis la fonction de callback n'est pas visité. D'autres changements dans le tableau (modification d'une valeur ou suppression d'un élément) peuvent affecter le résultat de l'opération si la méthode visite l'élément modifié par la suite. Bien que le comportement particulier de ces méthodes dans de tels cas soit bien défini, il ne vaut mieux pas s'en servir de cette manière afin de ne pas semer la confusion chez d'autres qui pourraient lire votre code. Si vous voulez réellement modifier le tableau, copiez plutôt les résultats dans un nouveau tableau. filter Crée un nouveau tableau avec tous les éléments de ce tableau pour lequel la fonction de filtre fournie renvoie true. forEach Appelle une fonction pour chaque élément du tableau. every Renvoie true si chacun des éléments du tableau satisfait à la la fonction de test spécifiée. map Crée un nouveau tableau formé des résultats de l'appel d'une fonction spécifiée sur chacun des éléments du tableau. some Renvoie true si au moins un élément du tableau satisfait à la fonction de test spécifiée.
Introduit dans JavaScript 1.8 reduce Applique une fonction simultanément sur deux valeurs du tableau (de gauche à droite) afin de réduire celui-ci à une seule valeur. reduceRight Applique une fonction simultanément sur deux valeurs du tableau (de droite à gauche) afin de réduire celui-ci à une seule valeur. Méthodes héritées de Object.prototype __defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, valueOf, watch Voir également • Référence de JavaScript 1.5 Core:Objets globaux:Array • Function.prototype
Exemples Exemple : création d'un tableau L'exemple suivant crée un tableau, messages, d'une longueur de 0, puis assigne des valeurs à messages[0] et messages[99], ce qui changera la longueur du tableau en 100. var messages = new Array(); messages[0] = "Hello"; messages[99] = "world"; if (messages.length == 100) print("La longueur vaut 100."); Exemple : création d'un tableau bidimensionnel Le code suivant crée un échiquier sous la forme d'un tableau à deux dimensions de chaînes de caractères. Le premier mouvement est fait en copiant le « P » de 1,4 à 3,4. La position 1,4 est rendue vide. var board = [ ['R','N','B','Q','K','B','N','R'], ['P','P','P','P','P','P','P','P'], [' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' '], [' ',' ',' ',' ',' ',' ',' ',' '], ['p','p','p','p','p','p','p','p'], ['r','n','b','q','k','b','n','r']]; print(board.join('\n') + '\n\n');
// Déplace le pion devant le Roi de deux cases vers vers l'avant board[3][4] = board[1][4]; board[1][4] = ' '; print(board.join('\n')); Voici le résultat : R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , , , , , , , , , , , , p,p,p,p,p,p,p,p r,n,b,q,k,b,n,r
R,N,B,Q,K,B,N,R P,P,P,P, ,P,P,P , , , , , , , , , , ,P, , , , , , , , , , , , , , , , , p,p,p,p,p,p,p,p r,n,b,q,k,b,n,r
|
 |