В этом руководстве вы узнаете о свойстве length
в JavaScript и о том, как правильно с ним обращаться.
По определению свойство length массива представляет собой 32-разрядное целое число без знака, которое всегда численно больше, чем самый высокий индекс в массиве.
Значение длины равно 232. Это означает, что массив может содержать до 4294967296(232) элементов.
Свойство ведет себя по-разному в зависимости от типа массива, включая плотный и разреженный.
1) Плотные массивы
Плотный массив — это массив, элементы которого имеют непрерывные индексы, начинающиеся с нуля.
Для плотных массивов вы можете использовать свойство length
, чтобы получить количество элементов в массиве. Например:
let colors = ['red', 'green', 'blue']; console.log(colors.length); // 3
В этом примере свойство length
возвращает 3, что соответствует количеству элементов в массиве colors
.
Следующий код добавляет еще один элемент в массив colors
:
colors.push('yellow'); console.log(colors.length); // 4
Теперь свойство length
массива colors
равно 4.
Когда вы очищаете массив colors
, его длина равна нулю:
colors = []; console.log(colors.length); // 0
2) Разреженные массивы
Разреженный массив — это массив, элементы которого не имеют непрерывных индексов, начинающихся с нуля.
Например, массив [10,, 20, 30]
является разреженным, поскольку индексы его элементов равны 0, 2 и 3.
В разреженном массиве свойство длины не указывает фактическое количество элементов. Это число, которое больше самого высокого индекса. Например:
let numbers = [10, , 20, 30]; console.log(numbers.length); // 4
В этом примере число элементов в массиве numbers
равно трем: 10, 20 и 30. Самый высокий индекс равен трем. Следовательно, свойство length
возвращает 4.
Следующее добавляет элемент в массив numbers
с индексом 10:
numbers[10] = 100; console.log(numbers.length); // 11
В этом примере свойство length
возвращает 11.
Изменение свойства
JavaScript позволяет вам изменить значение свойства length
массива. Изменяя значение длины, вы можете удалить элементы из массива или сделать массив разреженным.
1) Очищение массива
Если вы установите length равным нулю, массив будет пустым:
const fruits = ['Apple', 'Orange', 'Strawberry']; fruits.length = 0; console.log(fruits); // []
2) Удаление элементов
Если вы установите для свойства length
массива значение, меньшее, чем самый высокий индекс, все элементы, чей индекс больше или равен новой длине, будут удалены.
В следующем примере свойство length
массива fruits
изменяется на два, что удаляет третий элемент из массива:
const fruits = ['Apple', 'Orange', 'Strawberry']; fruits.length = 2; console.log(fruits); // [ 'Apple', 'Orange' ]
3) Как сделать массив разреженным
Если вы установите для свойства length
массива значение, превышающее самый высокий индекс, массив будет разреженным. Например:
const fruits = ['Apple', 'Orange', 'Strawberry']; fruits.length = 5; console.log(fruits); // [ 'Apple', 'Orange', 'Strawberry', <2 empty items> ]
Заключение
- Свойство
length
массива представляет собой 32-разрядное целое число без знака, которое всегда численно больше, чем самый высокий индекс массива. - Длина возвращает количество элементов, которые имеет плотный массив.
- Для запасного массива длина не отражает количество фактических элементов в массиве.
- Изменение свойства
length
может удалить элементы из массива или сделать массив разреженным.