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

Варианты умножения длины массива на 2

Анонимный массив

[].length = [].length * 2

Мы получим 0 т. к. изначальное значение длины анонимного массива ноль. Умножение на ноль даёт ноль (стандартная математика)

 

Именованный массив

var massiv = [5,"efim360.ru", true, [1,2], {a:2}]

Текущая длина массива равна 5. Умножим длину этого массива на 2.

Понятная запись

massiv.length = massiv.length * 2

Короткая запись

massiv.length *= 2

Задачка

А сколько будет так? Уверен вы не угадаете =)

[].length = [,,,].length * 2

Длина этого массива будет равняться 6, а не 8.

 

Итог

Как это работает? Сперва может показаться «масло масляное». Знак равенства «=» означает «присваивание». То что справа от равно «=» присваивается тому что слева.

Сначала высчитывается то что справа, а потом полученное значение присваивается тому что слева от знака равенства.

По сути левая часть — это ссылка на оперативную память, в которой произойдёт замена. Левая часть ждёт выполнения операций справа. Правая часть работает с текущими значениями.

 

Ссылки

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

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

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

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

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

ECMAScriptLiving Standardhttps://tc39.es/ecma262/#sec-punctuators

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