Свойство Array.length в JavaScript

В этом руководстве вы узнаете о свойстве 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 может удалить элементы из массива или сделать массив разреженным.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript