JavaScript | Как увеличить длину массива?

JavaScript | Как увеличить длину массива?

Иногда требуется увеличить длину массива. Пусть у нас будет массив massivPlus:

var massivPlus = ["qqq","www","eee","rrr"]

Этот массив имеет 4 элемента со значениями. Это полный массив, а значит количество элементов равняется количеству его индексов (4 элемента / 4 индекса). Его индексы: 0, 1, 2, 3

Мы визуально видим, что длина massivPlus равна 4. Давайте узнаем длину и убедимся, что мы правильно определили длину.

massivPlus.length

Всё верно. Длина исходного массива равна четырём (4)

 

Воспользуемся оператором присваивания «=» и установим свойство «length» экземпляра массива на 6. Так мы увеличим длину массива. Мы прописываем целое число в качестве новой длины.

massivPlus.length = 6

Мы присвоили то что находится справа, тому что находится слева от символа «=». То есть цифру 6 мы присвоили для massivPlus.length. В результате мы ручным способом увеличили длину массива.

Но давайте теперь подумаем, что стало с самими элементами массива после увеличения длины. Какое значение элемента массива мы получим под индексом «0», а какое под индексом «5»?

Выведем в консоль наш новый (удлинённый) массив:

console.log(massivPlus)

Посмотрим, что получилось:

Массив с увеличенной длиной
Массив с увеличенной длиной

Старые элементы остались на своих местах (под своими индексами). Порядок элементов не изменился — остался прежним. Но итоговый (новый) массив пополнился двумя пустыми элементами без значений, под которые не были выделены индексы. В результате мы имеем длину массива 6, но без индексов 4 и 5.

Операция увеличения длины массива безопасна, если нам важно сохранить данные. Противоположная операция — уменьшения длины массива, повреждает данные (удаляет), хранящиеся в элементах.

 

Видео инструкция

В этом видео приводится пример увеличения длины массива JavaScript, созданного при помощи квадратных скобок. Ввод команд осуществляется в консоль браузера Google Chrome. Результат виден сразу.

 

Альтернативный синтаксис

Можно было использовать иной синтаксис. Например можно к существующей длине массива прибавить 2, чтобы в итоге получить длину 6:

massivPlus.length += 2

То есть мы бы не просто «присваивали» — сначала «прибавляли«, а потом «присваивали«. Результат остался бы прежним:

Увеличение длины массива на 2
Увеличение длины массива на 2

 

 

Ссылки

JavaScript | Массивы (Array)

JavaScript | Как уменьшить длину массива?

JavaScript | Как изменить длину массива?

ECMAScriptLiving Standardhttps://tc39.es/ecma262/#sec-array-objects

ECMAScriptLiving Standardhttps://tc39.es/ecma262/#sec-properties-of-array-instances-length