.push()

Добавляет новый элемент в конец массива.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод 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().