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

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

var massivMinus = ["qqq","www","eee","rrr","ttt","yyy"]

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

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

massivMinus.length

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

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

massivMinus.length = 3

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

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

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

console.log(massivMinus)

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

Массив с уменьшенной длиной
Массив с уменьшенной длиной

Итоговый (новый) массив лишился трёх последних элементов, под которые не были выделены индексы. В результате мы имеем длину массива 3, но без индексов 3, 4 и 5. Они просто пропали — стёрлись из оперативной памяти. Уменьшение длины массива уничтожило данные.

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

Ссылки

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

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

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

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

Поделись записью