JS властивість Array.length
Опис
Властивість length
в масиві відображає кількість елементів, які він містить. Ця властивість представляє собою 32-бітне додатнє ціле число, що завжди перевищує найвищий індекс у масиві.
const listA = [1, 2, 3];
const listB = new Array(6);
console.log(listA.length); // 3
console.log(listB.length); // 6
listB.length = 2 ** 32; // 4294967296
// RangeError: Неприпустима довжина масиву
const listC = new Array(-100); // Від'ємні числа не допускаються
// RangeError: Неприпустима довжина масиву
Об'єкт масиву моніторить властивість length
, синхронізуючи її значення із вмістом масиву. Це означає:
- Встановлення довжини на число, менше поточної довжини, обрізає масив - елементи, що виходять за рамки нової довжини, усуваються.
- Встановлення будь-якого індексу масиву (додатного цілого числа менше
2^32
) поза поточною довжиною веде до розширення масиву - властивістьlength
зростає, відображаючи новий максимальний індекс. - Встановлення недопустимого значення довжини (наприклад, від'ємного числа або нецілого числа) викликає виняткову ситуацію
RangeError
.
Коли довжина встановлюється на значення, більше ніж поточна, масив розширюється за рахунок додавання порожніх місць, а не реальних значень undefined
. Ці порожні слоти взаємодіють з методами масиву особливим чином; більше про це в розділі про методи масиву та порожні слоти.
const arr = [1, 2];
console.log(arr); // [ 1, 2 ]
arr.length = 5; // встановлюємо довжину масиву на 5, в теперішній момент вона 2.
console.log(arr); // [ 1, 2, <3 порожні елементи> ]
arr.forEach((елемент) => console.log(елемент));
// 1
// 2
Нотатка: | Маєте на увазі, що властивість |
Порада: | Коли
Результат виведення буде "Масив порожній". |
Синтаксис
Array.length
Значення
integer
Невід'ємне ціле число, менше 232.
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє, як використовувати властивість length
масива для визначення його довжини, а також як дізнатися про властивості кожного окремого елемента масиву, включаючи довжину рядків та типи даних для нерядкових елементів.
Ітерація по масиву.
const numbers = [1, 2, 3, 4, 5];
const length = numbers.length;
for (let i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers тепер [2, 4, 6, 8, 10]
У прикладі масив numbers
скорочується до довжини 3, якщо поточна довжина більша за 3.
const numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
console.log(numbers[3]); // undefined; зайві елементи видаляються
Створення порожнього масиву фіксованої довжини. Встановлення значення length
більшого, ніж поточна довжина, створює розріджений масив.
const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]
Масив з незмінною властивістю length
. Властивість length
автоматично оновлюється масивом, коли елементи додаються поза поточною довжиною. Якщо властивість length
зробити незмінною, масив не зможе її оновити. Це призводить до помилки в строгому режимі.
"use strict";
const numbers = [1, 2, 3, 4, 5];
Object.defineProperty(numbers, "length", { writable: false });
numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
numbers.push(5); // TypeError: Cannot assign to read only property 'length' of object '[object Array]'