[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length [Back]  [Original]

Array : proprit length - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Array : proprit length

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La proprit de donnes length d'une instance de Array reprsente le nombre d'emplacements dans ce tableau. Sa valeur est un entier non sign sur 32 bits qui est toujours numriquement suprieur au plus grand indice du tableau. Elle peut tre suprieure au nombre d'lments si le tableau est creux.

Dans cet article

Exemple interactif

const clothing = ["chaussures", "chemises", "chaussettes", "pulls"];

console.log(clothing.length);
// Rsultat attendu : 4

Valeur

Un entier positif infrieur 232.

Attributs de Array : proprit length
crivableOui
numrableNon
ConfigurableNon

Description

La valeur de la proprit length est un entier positif dont la valeur est infrieure 232.

js
const listeA = [1, 2, 3];
const listeB = new Array(6);

console.log(listeA.length);
// Rsultat attendu : 3

console.log(listeB.length);
// Rsultat attendu : 6

listeB.length = 2 ** 32; // 4294967296
// RangeError : Invalid array length

const listeC = new Array(-100); // Les nombres ngatifs ne sont pas autoriss
// RangeError : Invalid array length

L'objet tableau observe la proprit length et synchronise automatiquement la valeur de length avec le contenu du tableau. Cela signifie :

  • Dfinir la proprit length une valeur infrieure la longueur actuelle tronque le tableau les lments au-del de la nouvelle valeur de length sont supprims.
  • Dfinir un indice de tableau (un entier positif infrieur 232) au-del de la valeur actuelle de length tend le tableau la proprit length est augmente pour reflter le nouvel indice le plus lev.
  • Dfinir la proprit length une valeur invalide (par exemple, un nombre ngatif ou un nombre non entier) lve une exception RangeError.

Lorsque la proprit length est dfinie une valeur suprieure la longueur actuelle, le tableau est tendu en ajoutant des emplacements vides, et non des valeurs undefined relles. Les emplacements vides ont des interactions particulires avec les mthodes de tableau : voir mthodes de tableau et emplacements vides.

js
const tableau = [1, 2];
console.log(tableau);
// [ 1, 2 ]

tableau.length = 5; // On dfinit la longueur du tableau  5 alors qu'elle vaut 2.
console.log(tableau);
// [ 1, 2, <3 lments vides> ]

tableau.forEach((lment) => console.log(lment));
// 1
// 2

Voir aussi la relation entre longueur et proprits numriques.

Exemples

Parcourir un tableau

Dans l'exemple suivant, on itre sur le tableau nombres en utilisant la proprit length afin de connatre son nombre d'lments. La valeur de chaque lment est ensuite multiplie par deux :

js
const nombres = [1, 2, 3, 4, 5];
const longueur = nombres.length;
for (let i = 0; i < longueur; i++) {
  nombres[i] *= 2;
}
// nombres vaut maintenant [2, 4, 6, 8, 10]

Tronquer un tableau

L'exemple suivant raccourcit le tableau nombres une longueur de 3 si sa longueur actuelle est suprieure 3.

js
const nombres = [1, 2, 3, 4, 5];

if (nombres.length > 3) {
  nombres.length = 3;
}

console.log(nombres); // [1, 2, 3]
console.log(nombres.length); // 3
console.log(nombres[3]); // undefined ; les lments supplmentaires sont supprims

Crer un tableau vide de longueur fixe

Dfinir la proprit length une valeur suprieure la longueur actuelle cre un tableau creux.

js
const nombres = [];
nombres.length = 3;
console.log(nombres); // [vide x 3]

Tableau avec une proprit length non modifiable

La proprit length est automatiquement mise jour par le tableau lorsque des lments sont ajouts au-del de la longueur actuelle. Si la proprit length est rendue non modifiable, le tableau ne peut pas la mettre jour. Cela provoque une erreur en mode strict.

js
"use strict";

const nombres = [1, 2, 3, 4, 5];
Object.defineProperty(nombres, "length", { writable: false });
nombres[5] = 6; // TypeError : Cannot assign to read only property 'length' of object '[object Array]'
nombres.push(5); // TypeError : Cannot assign to read only property 'length' of object '[object Array]'

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-properties-of-array-instances-length

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page