Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: push, unshift, time complexity, array, JavaScript

Чем push отличается от unshift по поведению и временно́й сложности?

Вопрос проверяет понимание различий между методами push и unshift в JavaScript, включая их влияние на производительность и временную сложность.

Короткий ответ

Метод push добавляет элемент в конец массива, а unshift — в начало. push работает за O(1), так как не требует сдвига элементов, а unshift — за O(n), потому что все существующие элементы сдвигаются на один индекс вправо. Поэтому для больших массивов unshift может быть значительно медленнее.

Длинный ответ

Разница между push и unshift

Методы push и unshift используются для добавления элементов в массив, но работают по-разному. push добавляет элемент в конец массива, а unshift — в начало. Это различие напрямую влияет на производительность.

Временная сложность

  • push — O(1), так как элемент просто помещается в конец, не затрагивая другие элементы.
  • unshift — O(n), потому что все существующие элементы сдвигаются на один индекс вправо, что требует перебора всего массива.

Пример кода

const arr = [2, 3, 4];
arr.push(5); // [2, 3, 4, 5] — O(1)
arr.unshift(1); // [1, 2, 3, 4, 5] — O(n)

Когда что использовать

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

Вывод: push эффективнее для добавления в конец, а unshift требует больше ресурсов из-за сдвига элементов. Выбор зависит от задачи: если нужна вставка в начало, рассмотрите альтернативы.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#push

#unshift

#time complexity

#array

#JavaScript

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию