Кратко
СкопированоМетод push
позволяет добавить один или несколько элементов в конец массива. В результате вернётся новая длина массива.
Пример
СкопированоДобавляем 3 элемента в существующий массив:
const nums = [1, 2, 3]const result = nums.push(4, 5, 6)console.log(result)// 6console.log(nums)// [1, 2, 3, 4, 5, 6]
const nums = [1, 2, 3] const result = nums.push(4, 5, 6) console.log(result) // 6 console.log(nums) // [1, 2, 3, 4, 5, 6]
Добавляем все элементы из одного массива в конец другого:
const nums = [1, 2, 3]const anotherNums = [4, 5, 6]nums.push(...anotherNums)console.log(nums)// [1, 2, 3, 4, 5, 6]
const nums = [1, 2, 3] const anotherNums = [4, 5, 6] nums.push(...anotherNums) console.log(nums) // [1, 2, 3, 4, 5, 6]
Как пишется
СкопированоМетод принимает элементы, которые будут добавлены в массив.
push()push(element1)push(element1, element2)push(element1, element2, /* …, */ elementN)
push() push(element1) push(element1, element2) push(element1, element2, /* …, */ elementN)
Как понять
СкопированоДлина массива может часто изменяться. Например, если мы пишем приложение "Список дел", то текущий список дел можно хранить в массиве:
const todoList = ['Поесть', 'Почитать Доку']
const todoList = ['Поесть', 'Почитать Доку']
Для добавления новой задачи воспользуемся методом push
:
todoList.push('Поспать')console.log(todoList)// ['Поесть', 'Почитать Доку', 'Поспать']
todoList.push('Поспать') console.log(todoList) // ['Поесть', 'Почитать Доку', 'Поспать']
Какой метод использовать
СкопированоМассивы предоставляют несколько методов для добавления нового элемента в существующий массив:
push
— для добавления в конец массива;( ) unshift
— для добавления в начало массива;( ) splice
— для вставки элементов по заданному индексу.( )
Метод push
обычно работает за константное время. При создании массива автоматически выделяется память с запасом, поэтому для добавления элемента не нужно создавать новый массив. Только после того, как количество элементов в массиве вырастет до такого размера, что памяти для добавления не будет хватать, будет создан новый массив. В таком случае добавление элемента произойдёт за линейное время.
Метод unshift
работает за линейное время. При добавление новых элементов в начало массива для каждого существующего элемента изменится индекс. Новый индекс станет равным текущему индексу плюс количество добавляемых элементов. Так как придётся пройти по всем элементам, то метод unshift
займёт линейное время.
Метод splice
также работает за линейное время.
Поэтому, если вам не важен порядок расположения элементов в массиве, то лучше всегда использовать метод push
.