mozilla

Comparaison de révisions

Array

Changer de révision

Révision 502101 :

Révision 502101 par antham le

Révision 520799 :

Révision 520799 par senshu le

Titre :
Array
Array
Identifiant d'URL :
JavaScript/Reference/Global_Objects/Array
JavaScript/Reference/Global_Objects/Array
Étiquettes :
"NeedsTranslation", "Array", "JavaScript Reference", "TopicStub", "JavaScript"
"NeedsTranslation", "Array", "JavaScript Reference", "TopicStub", "JavaScript"
Contenu :

Révision 502101
Révision 520799
n26        Un tableau en javascript est initialisé avec les élémentsn26        Un tableau en JavaScript est initialisé avec les éléments
> passés en paramètre, à l'exception du cas où un seul argument es> fournis, à l'exception du cas où un seul argument est passé au c
>t passé au constructeur de l'objet <code>Array</code> et que cet >onstructeur <code>Array</code> et où cet argument est un nombre. 
>argument est un chiffre. (Voir ci-dessous.) A noter que ce cas pa>(Voir ci-dessous.) Notez que ce cas particulier s'applique aux ta
>rticulier s'applique aux tableaux créent avec le constructeur de >bleaux créés avec le constructeur <code>Array</code> , et non aux
>l'objet <code>Array</code> , non pas aux tableaux litérales créen> tableaux littéraux créés avec la syntaxe entre crochets.
>t avec la syntaxe des crochets. 
n32        Si le seul argument passé au constructeur de l'objet <codn32        Si le seul argument passé au constructeur <code>Array</co
>e>Array</code>&nbsp; est un entier entre 0 et 2<sup>32</sup>-1 (i>de>&nbsp; est un entier entre 0 et 2<sup>32</sup>-1 (inclus), un 
>nclus), un nouveau tableau vide est retourné avec sa taille défin>nouveau tableau JavaScript est retourné avec la taille définie pa
>ie par cet entier et contenant autant d'entrées, chacune étant in>r cet entier et contenant autant d'entrées, chacune étant initial
>itialisée à <code>undefined</code>. Si l'argument est n'importe q>isée à <code>undefined</code>. Si l'argument est n'importe quel a
>uel autre nombre, une exception <code><a href="/en-US/docs/JavaSc>utre nombre, une exception <code><a href="/en-US/docs/JavaScript/
>ript/Reference/Global_Objects/RangeError" title="JavaScript/Refer>Reference/Global_Objects/RangeError" title="JavaScript/Reference/
>ence/Global_Objects/RangeError">RangeError</a></code> est levée.>Global_Objects/RangeError">RangeError</a></code> est levée.
n39      Les tableaux sont des objets s'apparentant aux listes qui pn39      Les tableaux sont des objets s'apparentant aux listes qui p
>ossèdent plusieurs méthodes de base pour exécuter des opérations >ossèdent plusieurs méthodes de base pour exécuter des opérations 
>de parcours et de mutation. Ni la taille du tableau en Javascript>de parcours et de mutation. Ni la taille du tableau en Javascript
> ni le type de ses éléments n'est fixé. Comme la taille d'un tabl> ni le type de ses éléments n'est fixé. Comme la taille d'un tabl
>eau peut augmenter ou diminuer à n'importe quel moment, les table>eau peut augmenter ou diminuer à n'importe quel moment, les table
>aux en Javascript ne sont pas garantis denses. Globalement ce son>aux en Javascript ne sont pas garantis denses. En général, ce son
>t des charactéristiques utiles, mais si ces fonctionnalités ne so>t des caractéristiques utiles, mais si ces fonctionnalités ne son
>nt pas souhaitable pour votre cas d'utilisation, vous pouvez cons>t pas souhaitables pour votre cas d'utilisation, vous pouvez cons
>idérer l'utilisation de tableaux de type WebGL.>idérer l'utilisation de tableaux typés.
40    </p>
41    <p>40    </p>
41    <p>
42      Noter que <a href="http://www.andrewdupont.net/2006/05/18/j42      Certains pensent que <a href="http://www.andrewdupont.net/2
>avascript-associative-arrays-considered-harmful/">vous ne devez p>006/05/18/javascript-associative-arrays-considered-harmful/">vous
>as utiliser les tableaux en tant que tableau associatif</a>. Vous> ne devez pas utiliser les tableaux en tant que tableaux associat
> pouvez utiliser des <a href="/en-US/docs/JavaScript/Reference/Gl>ifs</a>. Vous pouvez utiliser des <a href="/en-US/docs/JavaScript
>obal_Objects/Object" title="JavaScript/Reference/Global Objects/O>/Reference/Global_Objects/Object" title="JavaScript/Reference/Glo
>bject">objets</a> ordinaire à la place, bien que cette pratique à>bal Objects/Object">objets</a> ordinaires à la place, bien que ce
> ses propres défauts. Voir le post <a class="external" href="http>tte pratique ait ses propres défauts. Voir le post <a class="exte
>://monogatari.doukut.su/2010/12/lightweight-javascript-dictionari>rnal" href="http://monogatari.doukut.su/2010/12/lightweight-javas
>es.html" title="http://monogatari.doukut.su/2010/12/lightweight-j>cript-dictionaries.html" title="http://monogatari.doukut.su/2010/
>avascript-dictionaries.html">Lightweight JavaScript dictionaries >12/lightweight-javascript-dictionaries.html">Lightweight JavaScri
>with arbitrary keys</a> comme exemple.>pt dictionaries with arbitrary keys</a> comme exemple.
n48      Les tableaux en Javascript sont indexés à zéro; le premier n48      Les tableaux en Javascript sont indexés à zéro; le premier 
>élément d'un tableau est en réalité à l'index <code>0</code>, et >élément d'un tableau est à l'indice <code>0</code>, et le dernier
>le dernier élément est à l'index égal à la valeur de la propriété> élément est à l'indice égal à la valeur de la propriété <a href=
> <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array/l>"/en-US/docs/JavaScript/Reference/Global_Objects/Array/length" ti
>ength" title="JavaScript/Reference/Global_Objects/Array/length"><>tle="JavaScript/Reference/Global_Objects/Array/length"><code>leng
>code>length</code></a> du tableau moins 1.>th</code></a> du tableau moins 1.
n57      Les éléments d'un tableau sont simplement des propriétés d'n57      Les éléments d'un tableau sont simplement des propriétés d'
>objets, de la même manière que <code><a href="/en-US/docs/toStrin>objets, de la même manière que <code><a href="/en-US/docs/toStrin
>g" title="toString">toString</a></code> est une propriété. Cepend>g" title="toString">toString</a></code> est une propriété. Cepend
>ant, constater qu'essayer d'accéder au premier élément d'un table>ant, si vous essayez d'accéder au premier élément d'un tableau de
>au comme suit lèvera une erreur:> la manière suivante, une erreur de syntaxe sera signalée car le 
 >nom de propriété est invalide :
n63      Voyez qu'il n'y a rien d'unique au fait que les tableaux enn63      Cette erreur n'est pas due à une caractéristique spéciale d
> Javascript et leurs propriétés cause ça. Les propriétés en Javas>es tableaux JavaScript et de leurs propriétés. Les propriétés Jav
>cript qui commencent par un chiffre, ne peuvent pas être référenc>aScript qui commencent par un chiffre ne peuvent pas être référen
>ées avec la notation pointée. Elles doivent être accédés en utili>cées avec la notation pointée. Elles doivent être accédées en uti
>sant les crochets. Par exemple, si vous avez un objet avec une pr>lisant la notation entre crochets. Par exemple, si vous avez un o
>opriété "3d", elle aussi sera accessible en utilisant la notation>bjet avec une propriété "3d", elle sera accessible seulement en u
> en crochet et non pas en utilisant la notation pointée. Cette re>tilisant la notation entre crochets. Cette situation est illustré
>ssemblance est montrée dans les 2 échantillons de code suivant:>e par les deux échantillons de code suivants :
n85      On remarque que dans l'exemple <code>3d</code>, "<code>3d</n85      On remarque que dans l'exemple <code>3d</code>, "<code>3d</
>code>" doit etre mis entre guillemets. Il est possible de mettre >code>" doit etre mis entre guillemets. Il est possible de mettre 
>entre guillemets les index des tableaux également (ex: <code>year>entre guillemets les indices des tableaux également (ex : <code>y
>s["2"]</code> au lieu de <code>years[2]</code>), bien que ce ne s>ears["2"]</code> au lieu de <code>years[2]</code>) bien que ce ne
>oit pas nécessaire. Le 2 dans <code>years[2]</code> peut éventuel> soit pas nécessaire. Le 2 dans <code>years[2]</code> peut éventu
>lement être forcé en chaine de caractère par le moteur Javascript>ellement être forcé en chaine de caractère par le moteur JavaScri
>, par n'importe quel moyen, au travers d'une conversion <code>toS>pt, par n'importe quel moyen, au travers d'une conversion <code>t
>tring</code> implicite. C'est pour cette raison que "2" et "02" f>oString</code> implicite. C'est pour cette raison que "2" et "02"
>eront références à 2 emplacements sur l'objet <code>years</code> > feront référence à deux emplacements distincts sur l'objet <code
>et l'exemple suivant renvoit <code>true</code>:>>years</code> et l'exemple suivant renvoie <code>true</code> :
n94      La propriété Javascript des tableaux <code><a href="/en-US/n94      La propriété JavaScript des tableaux <code><a href="/en-US/
>docs/JavaScript/Reference/Global_Objects/Array/length" title="Jav>docs/JavaScript/Reference/Global_Objects/Array/length" title="Jav
>aScript/Reference/Global_Objects/Array/length">length</a></code> >aScript/Reference/Global_Objects/Array/length">length</a></code> 
>et les propriétés numériques sont liées. Plusieurs méthodes nativ>et les propriétés numériques sont liées. Plusieurs méthodes nativ
>es des tableaux (ex: <code><a href="/en-US/docs/JavaScript/Refere>es des tableaux (ex : <code><a href="/en-US/docs/JavaScript/Refer
>nce/Global_Objects/Array/join" title="JavaScript/Reference/Global>ence/Global_Objects/Array/join" title="JavaScript/Reference/Globa
>_Objects/Array/join">join</a></code>, <code><a href="/en-US/docs/>l_Objects/Array/join">join</a></code>, <code><a href="/en-US/docs
>JavaScript/Reference/Global_Objects/Array/slice" title="JavaScrip>/JavaScript/Reference/Global_Objects/Array/slice" title="JavaScri
>t/Reference/Global_Objects/Array/slice">slice</a></code>, <code><>pt/Reference/Global_Objects/Array/slice">slice</a></code>, <code>
>a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array/ind><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array/in
>exOf" title="JavaScript/Reference/Global_Objects/Array/indexOf">i>dexOf" title="JavaScript/Reference/Global_Objects/Array/indexOf">
>ndexOf</a></code>, etc.) prennent en considération la valeur de l>indexOf</a></code>, etc.) prennent en considération la valeur de 
>a propriété <code><a href="/en-US/docs/JavaScript/Reference/Globa>la propriété <code><a href="/en-US/docs/JavaScript/Reference/Glob
>l_Objects/Array/length" title="JavaScript/Reference/Global_Object>al_Objects/Array/length" title="JavaScript/Reference/Global_Objec
>s/Array/length">length</a> quand</code> elles sont appelées. Les >ts/Array/length">length</a></code> quand elles sont appelées. Les
>autres méthodes (ex: <code><a href="/en-US/docs/JavaScript/Refere> autres méthodes (ex : <code><a href="/en-US/docs/JavaScript/Refe
>nce/Global_Objects/Array/push" title="JavaScript/Reference/Global>rence/Global_Objects/Array/push" title="JavaScript/Reference/Glob
>_Objects/Array/push">push</a></code>, <code><a href="/en-US/docs/>al_Objects/Array/push">push</a></code>, <code><a href="/en-US/doc
>JavaScript/Reference/Global_Objects/Array/splice" title="JavaScri>s/JavaScript/Reference/Global_Objects/Array/splice" title="JavaSc
>pt/Reference/Global_Objects/Array/splice">splice</a></code>, etc.>ript/Reference/Global_Objects/Array/splice">splice</a></code>, et
>) ont pour conséquences une mise à jour de la propriété <code>len>c.) ont pour conséquence une mise à jour de la propriété <code>le
>gth</code>.>ngth</code>.
n98fruits.push("banana", "apple", "peach");n98fruits.push("banane", "pomme", "pêche");
n103      Quand on définit une propriété en javascript, que la proprin103      Quand on définit une propriété sur un tableau javaScript, q
>été est un index valide et que l'index et en dehors des limites d>ue la propriété est un indice valide et que l'indice est en dehor
>u tableau actuel, le tableau s'agrandira suffisamment afin de pou>s des limites courantes du tableau, le moteur JavaScript mettra à
>voir recevoir l'index et le moteur mettra à jour la propriété <co> jour la propriété <code>length</code> de manière appropriée.
>de>length</code> conformément: 
n106fruits[3] = "mango";n106fruits[5] = "mangue";
107console.log(fruits[3]);107console.log(fruits[5]); // "mangue"
108console.log(Object.keys(fruits)); // ["0", "1", "2", "5"]
108console.log(fruits.length); // 4109console.log(fruits.length); // 6
n111      Définir la propriété <code>length</code>, directement, prodn112      Augmenter la propriété <code>length</code> directement ne c
>uit un comportement particulier.>rée pas de nouvel élément.
n115console.log(fruits);        // The array gets padded with undefinn116console.log(Object.keys(fruits)); // ["0", "1", "2", "5"]
>ed 
tt118</pre>
119    <p>
120      En revanche, diminuer la propriété <code>length</code> détr
 >uit des éléments.
121    </p>
122    <pre class="brush: js">
123fruits.length = 2;
124console.log(Object.keys(fruits)); // ["0", "1"]
125console.log(fruits.length); // 2

Retour à l'historique