array.length

Властивість length об'єкта, який є екземпляром типу Array, встановлює або повертає кількість елементів у цьому масиві. Значення є цілим беззнаковим 32-бітним числом, що завжди є більшим за найбільший індекс у масиві.

Опис

Значенням властивості length є ціле додатне число, менше за 2 в степені 32 (232).

var namelistA = new Array(4294967296); //2 в степені 32 = 4294967296
var namelistC = new Array(-100) //від'ємне число

console.log(namelistA.length); //RangeError: Invalid array length
console.log(namelistC.length); //RangeError: Invalid array length

var namelistB = [];
namelistB.length = Math.pow(2,32)-1; //встановити довжину масиву меншу, ніж 2 в степені 32
console.log(namelistB.length); 

//4294967295

Ви можете присвоїти значення властивості length, щоб скоротити масив. Коли ви розширюєте масив, змінюючи його довжину (властивість length), збільшується кількість фактичних елементів; наприклад, якщо ви присвоїли length 3, коли елементів насправді 2, масив тепер містить 3 елементи, в результаті третій є неітерабельним порожнім елементом.

var arr = [1, 2];
console.log(arr);
// [ 1, 2 ]

arr.length = 5; // встановити довжину 5, маючи 2 елементи.
console.log(arr);
// [ 1, 2, <3 порожні елементи> ]

arr.forEach(element => console.log(element));
// 1
// 2

Таким чином, поле length не обов'язково вказує на кількість визначених значень у масиві. Дивіться також Зв'язок між length та числовими властивостями.

Атрибути поля array.length
Доступний для запису так
Доступний для переліку ні
Доступний для налаштування ні
  • Writable (Доступний для запису): Якщо цей атрибут встановлений у false, значення цієї властивості не можна змінити.
  • Enumerable (Доступний для переліку): Якщо цей атрибут встановлений у true, властивість ітерується під час виконання циклів for або for..in.
  • Configurable (Доступний для налаштування): Якщо цей атрибут встановлений у false, будь-які спроби видалити властивість або змінити її атрибути (доступність для запису, переліку або налаштування) не спрацюють.

Приклади

Циклічне проходження по масиву

В наступному прикладі, проходження по масиву numbers відбувається зважаючи на властивість length. Значення кожного елементу подвоюється.

var numbers = [1, 2, 3, 4, 5];

for (var i = 0; i < numbers.length; i++) {
  numbers[i] *= 2;
}
// numbers тепер [2, 4, 6, 8, 10]

Скорочення масиву

Наступний приклад скорочує масив statesUS до довжини 3, якщо його поточна довжина більша, ніж 3.

var numbers = [1, 2, 3, 4, 5];

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

console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3

Створення порожнього масиву фіксованої довжини

var numbers = [];
numbers.length = 10;
console.log(numbers); // [empty × 10]

Специфікації

Специфікація Статус Коментар
ECMAScript 1st Edition (ECMA-262) Standard Початкове визначення.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.length' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.length' in that specification.
Standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.length' in that specification.
Draft

Сумісність із браузерами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
lengthChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support YesSafari Full support YesWebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

Див. також