unshift() в JavaScript

unshift() добавляет один или несколько элементов в начало массива.

let fruits = ['orange', 'banana'];

fruits.unshift('apple');

console.log(fruits);

Результат:

['apple', 'orange', 'banana']

Что делает unshift()

Метод unshift() работает с началом массива. Новые элементы становятся первыми, а старые элементы сдвигаются вправо.

let numbers = [20, 30];

numbers.unshift(10);

console.log(numbers); // [10, 20, 30]

Синтаксис

unshift() вызывается через точку после имени массива.

array.unshift(element)

В скобках указывают элемент, который нужно добавить в начало.

let users = ['Олег', 'Мария'];

users.unshift('Анна');

console.log(users);

Результат:

['Анна', 'Олег', 'Мария']

Несколько элементов

В unshift() можно передать несколько элементов.

let numbers = [30, 40];

numbers.unshift(10, 20);

console.log(numbers);

Результат:

[10, 20, 30, 40]

Элементы добавляются в том порядке, в котором они записаны в методе.

Возврат новой длины

unshift() возвращает новую длину массива.

let fruits = ['orange', 'banana'];

let length = fruits.unshift('apple');

console.log(length);
console.log(fruits);

Результат:

3
['apple', 'orange', 'banana']

Если новая длина не нужна, результат можно не сохранять.

let fruits = ['orange', 'banana'];

fruits.unshift('apple');

Исходный массив меняется

unshift() меняет исходный массив. Он не создает новый массив.

let colors = ['green', 'blue'];

colors.unshift('red');

console.log(colors);

Результат:

['red', 'green', 'blue']

Если нужно сохранить старый массив, сначала сделайте копию.

let colors = ['green', 'blue'];
let copy = [...colors];

copy.unshift('red');

console.log(colors); // ['green', 'blue']
console.log(copy); // ['red', 'green', 'blue']

unshift() и индексы

После добавления в начало индексы старых элементов меняются.

let users = ['Олег', 'Мария'];

console.log(users[0]); // Олег

users.unshift('Анна');

console.log(users[0]); // Анна
console.log(users[1]); // Олег

Это важно помнить, если где-то в коде вы уже сохранили индекс элемента.

Где использовать

unshift() подходит, когда новый элемент должен оказаться в начале списка.

let messages = ['Второе сообщение', 'Третье сообщение'];

messages.unshift('Первое сообщение');

console.log(messages);

Для небольших массивов это простой и понятный способ. Если массив очень большой и добавление в начало происходит часто, лучше отдельно подумать о структуре данных, потому что старым элементам нужно сдвинуться.

Итого

unshift() добавляет элементы в начало массива.

  • array.unshift(element) добавляет элемент в начало.
  • Можно добавить несколько элементов за один вызов.
  • Метод возвращает новую длину массива.
  • Исходный массив после вызова меняется.
  • Индексы старых элементов сдвигаются вправо.