Array

Résumé

Les objets globaux Array sont des constructeurs pour tableaux, qui sont de haut-niveau, objets semblables à la liste.

Syntaxe

[element0, element1, ..., elementN]
new Array(element0, element1, ..., elementN)
new Array(arrayLength)
element0, element1, ..., elementN
Un tableau est initialisé avec des éléments donnés, sauf dans le cas où un argument seul est passé au constructeur Array et que l'argument est un nombre. (Voir la suite.) Notez que ce cas spécial s'applique aux tableaux créés avec le constructeur Array, pas avec des tableaux litéraux créés utilisant la syntaxe avec les parenthèses.
arrayLength
Si le premier argument passé au constructeur Array est un entier entre 0 et 232-1 (inclus), un nouveau tableau est créé avec ce nombre d'éléments. Si l'argument est un autre nombre, l'exception RangeError  est envoyée.

Description

Les tableaux JavaScript des objets semblables à la liste qui vient avec plusieurs méthodes incorporées pour exécuter le transfert et  les opérations de changement. Ni la taille d'un tableau ni les types de ses éléments n'est fixée. Puisque la  dimension d'un tableau peut augmenter ou diminuer à tout moment, les tableaux ne sont pas garantis d'être compacts. En général, ce sont des caractéritiques pratiques, Mais si ceux-ci sont des choses désirables à avoir pour votre cas d'utilisation, vous pourriez envisager d'utiliser les tableaux tapés WebGL.

Notez que vous ne devriez pas considérer un tableau comme un tableau associatif. Vous pouvez utiliser des objects pleins à la place, même si cela vient avec ses propres avertissements. Voir le message des dictionnaires Lightweight JavaScript  avec des clés arbitraires par exemple.

Accession au éléments array

Les tableaux sont indicés à zéro; le premier élément d'un tableau est en fait indicé à 0, et le dernier élément est indéxé à la valeur moins un de la propriété length du tableau.

 var arr = ["this is the first element", "this is the second element"];  
 console.log(arr[0]);                
 console.log(arr[1]);                
 console.log(arr[arr.length - 1]);  

Les éléments d'un tableau sont justes des propriétés d'objets, in the way that toString is a property. However, notez qu'ils tentent d'accéder au premier élément d'un tableau, comme suit, avec l'envoi d'un message d'erreur de syntaxe:

 console.log(arr.0);

Notez qu'il n'y a rien d'unique à propos des tableaux et leurs propriétés qui causent ceci. Les propriétés de JavaScript qui débutent avec un digit ne peut être référencé avec une notations avec des points.  Ils doivent être accessibles en utilisant la notation de crochets.  Par exemple, si vous avez un objet avec la propriété "3d", il ne serait pas possible d'accéder par l'utilisation de points en notation, l'un ou l'autre. Ils pourraient, aussi, avoir besoin pour être référencés de l'utilisation de la notation crochets. Cette similitude est montrée dans les deux exemples de code suivant :

    var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010];  
    try {  
      console.log(years.0);  
    }  
    catch (ex) {  
      console.log("Using bracket notation");  
      console.log(years[0]);  
    }
 
    try {  
      renderer.3d.setTexture(model, "character.png");  
    }  
    catch (ex) {  
      console.log("Using bracket notation");  
      renderer["3d"].setTexture(model, "character.png");  
    } 

Notez que dans l'exemple 3d, "3d"  est inséré dans des crochets.  Il est possible de citer les indices de tableau ainsi (par exemple, years["2"] au lieu de years[2]), mais pas nécessairement.  Le 2 dans years[2] est finalement convertit dans une chaîne par le moteur JavaScript de toute façon, grâce à un conversion implicite de  toString.  C'est pour cette taison que "2" et "02" se réfèrent à deux emplacements différents de l'objet years et l'exemple suivant retourne true:

    console.log(years["2"] != years["02"]); 

Relation entre length et les propriétés numériques

Une propriété length du tableau et les propriétés numériques sont connectées.  Plusieurs des méthodes intégrées de tableau (par exemple, join, slice, indexOf, etc.) prennent en compte la valeur de la propriété de tableau length quand elles sont appelées.  D'autres méthodes (par exemple, push, splice, etc.) entraînent également des mises à jour d'une propriété  lenght(longueur)du tableau.

    var fruits = [];  
    fruits.push("banana", "apple", "peach");  
      
    console.log(fruits.length); 

Lorsque vous déclarez une propriété sur un tableau quand la propriété est un indice de tableau et que l'indice est en dehors des limites actuelles du tableau, le tableau atteindra une taille suffisamment grande pour accueillir un élément à cet indice, et le moteur mettra à jour la propriété lenght(longueur)du tableau en conséquence:

    fruits[3] = "mango";  
    console.log(fruits[3]);  
    console.log(fruits.length);  

Définit la propriété length directement aussi, les résultats dans un comportement particulier.

    fruits.length = 10;  
    console.log(fruits);         
    console.log(fruits.length);  

Ceci est expliqué plus loin sur la page length.

Création d'un tableau utilisant le résultat d'une correspondance

Le résultat d'une correspondance entre un expression régulière et une chaîne peut créer un tableau. Ce tableau possède les propriétés et les éléments qui fournissent l'information à propos de cette correspondance. Un tableau est la valeur de retour des valeurs de RegExp.exec, String.match, et String.replace. Pour aider à expliquer ces propriétés et ces éléments, regardez l'exemple qui suit et référez vous au tableau ci-dessous:

    var myRe = /d(b+)(d)/i;
    var myArray = myRe.exec("cdbBdbsbz");

Les propriétés et les éléments retournés depuis cette correspondance sont les suivants:

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é. cdbBdbsbz
index Une propriété en lecture seule qui est l'indice de base 0 de la correspondance dans la chaîne. 1
[0] Une propriété en lecture seule qui spécifie les derniers caractères correspondant. dbBd
[1], ...[n] Éléments en lecture seul qui spécifient les correspondances de chaînes entre parenthèse, si ils sont inclus dans une expression régulière. Le nombre de chaînes possibles est illimité. [1]: bB
[2]: d

Propriétés

Pour les propriétés disponibles sur les instances de Array , voir Méthodes des instances Array

prototype
Permet l'ajout de propriétés à tous les objets.
Propriétés héritées de Function:
arity, caller, constructor, length, name

Méthodes

Pour les méthodes disponibles sur les instances de Array , voir Méthodes des instances Array.

isArray

Requiert JavaScript 1.8.5
Retourne true si la variable est un tableau, sinon false.

InsArray

Les occurrences  Array héritent de Array.prototype. Comme tous les constructeurs, vous pouvez changer le prototype de construction d'objet pour effectuer les changements de toutes les instancesArray.

Propriétés

constructor
Spécifie la fonction créant le prototype d'un objet.
length
Reflète le nombre d'éléments dans un tableau.

Méthodes

Méthodes Mutator

Ces méthodes modifient le tableau:

pop
Supprime le dernier élément d'un tableau et renvoie cet élément.
push
Ajoute un ou plusieurs éléments à la fin du tableau et retourne la nouvelle longueur du tableau.
reverse
Inverse l'ordre des éléments d'un tableau -- le premier devient le dernier, et le dernier devient le premier.
shift
Supprime le premier élément du tableau et retourne cet élément.
sort
Trie les éléments d'un tableau.
splice
Ajoute et/ou supprimes des éléments d'un tableau.
unshift
Ajoute un ou plusieurs éléments à l'avant du tableau et retourne la nouvelle longueur du tableau.

Méthodes Accessor

Ces méthodes ne modifient pas le tableau et retournent une représentation du tableau.

concat
Retourne un nouveau tableau formé du tableau joint d'un autre tableau(x) et/ou valeurs(s).
join
Joint tous les éléments d'un tableau dans une chaîne.
slice
Extrait une section d'un tableau et retourne un nouveau tableau.
toSource Non-standard
Retourne un tableau litéral représentant un tableau spécifié; vous pouvez utiliser cette valeur pour créer un nouveau tableau. Remplace la méthode Object.prototype.toSource.
toString
Retourne une chaîne représentant le tableau et ses éléments. Remplace la méthode Object.prototype.toString.
indexOf Requires JavaScript 1.6
Retourne le premier (au moins) indice d'un élément dans le tabeau égal à la valeur spécifiée, ou -1 si aucun n'est trouvé.
lastIndexOf Requires JavaScript 1.6
Retourne le dernier (le plus grand) indice d'un élément dans le tabeau égal à la valeur spécifiée, ou -1 si aucun n'est trouvé.

Méthodes Iteration

Plusieurs méthodes prennent comme arguments de fonctions pour être rappelé lors du traitement du tableau. Quand ces méthodes sont appelées, la lenght(longueur) du tableau est échantillonnée, ou tout autre élément ajouté au-delà de cette longueur à partir du rappel n'est pas visité. D'autres modifications au tableau (réglage de la valeur ou de la suppression d'un élément) peut affecter les résultats de l'opération si la méthode visite l'élément modifié par la suite. Alors que le comportement spécifique de ces méthodes dans la plupart des cas  bien défini, vous ne devriez pas compter sur elle pour ne pas prêter à confusion pour les autres qui pourraient lire votre code. Si vous devez subir un changement dans le tableau, copiez le dans un nouveau tableau.

filter Requiert JavaScript 1.6
Crée un nouveau tableau avec tous les éléments de ce tableau pour lequel la fonction de filtrage retourne vrai (true).
forEach Requiert JavaScript 1.6
Appelle une fonction pour chaque élément dans le tableau.
every Requiert JavaScript 1.6
Retourne true(vrai) si tous les élément dans un tableau satisfont à la fonction de test fournie.
map Requiert JavaScript 1.6
Créé un nouveau tableau avec les résultats de l'appel d'une fonction fournie sur chaque élément du tableau.
some Requires JavaScript 1.6
Retourne true(vrai) si au moins un élément du tableau satisfait à la fonction de test fournie.
reduce Requiert JavaScript 1.8
Applique une fonction simultanément sur deux valeurs de tableau (de gauche à droite) pour la réduire à une simple valeur.
reduceRight Requires JavaScript 1.8
Applique une fonction simultanément sur deux valeurs de tableau (de droite à gauche) pour la réduire à une simple valeur.

Exemples

Exemple: Création d'un tableau

L'exemple suivant créé un tableau, msgArray, avec une longueur de 0, puis assigne des valeurs à msgArray[0]et msgArray[99], en changeant la longueur du tableau à 100.

    var msgArray = new Array();  
    msgArray[0] = "Hello";  
    msgArray[99] = "world";  
      
    if (msgArray.length == 100)  
       print("The length is 100."); 

Exemple: Création d'un tableau à deux dimensions

L'exemple suivant créé un plateau d'échec comme un tableau à deux dimensions de chaînes. Le premier mouvement est créé par la copie de 'P' de 6,4 à 4,4. La position 4,4 est une case blanche.

    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');  
      
      
    board[4][4] = board[6][4];  
    board[6][4] = ' ';  
    print(board.join('\n')); 

Ici l'édition:

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

 

Étiquettes et contributeurs liés au document

Contributeurs ayant participé à cette page : tregagnon, petitphp, fscholz, Manu1400, dwogsi, daniel35310, fkhannouf, LaBoumerde, AbrahamT
Dernière mise à jour par : fscholz,