Вебсправочник
Справочник JavaScript

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

Unshift вставляет значения в начало существующего массива и возвращает новую длину. Это полезно для небольшого списка, где новые элементы должны появиться перед старыми.

Назначение

Unshift вставляет значения в начало существующего массива и возвращает новую длину. Это полезно для небольшого списка, где новые элементы должны появиться перед старыми.

Как это работает

Несколько аргументов одного вызова сохраняют свой порядок. Несколько отдельных вызовов добавляют каждый новый набор перед уже добавленным. Индексы прежних элементов при этом сдвигаются.

Пример

const steps = ["Проверка"];
const length = steps.unshift("Подготовка", "Разработка");
console.assert(length === 3);
console.assert(steps.join("|") === "Подготовка|Разработка|Проверка");
const separate = ["Проверка"];
separate.unshift("Подготовка");
separate.unshift("Разработка");
console.assert(separate[0] === "Разработка");
console.log(steps, separate);

Что должно получиться

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

Граница применения и частая ошибка

Не используйте индекс массива как устойчивую идентичность записи, если постоянно добавляете в начало. Большие сдвиги могут быть затратными. Если нужна новая версия без мутации, создайте […newItems, …items] с учётом объёма данных.

Самостоятельная проверка

Сравните один вызов с тремя значениями и три последовательных вызова. Затем сохраните ссылку на массив в другой переменной и проверьте видимость изменений. Решите, нужен ли вашему интерфейсу новый объект коллекции.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.