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 (ECMA-262)
The definition of 'Array.length' in that specification.
Living Standard

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

BCD tables only load in the browser

Див. також