Какая сложность вставки элемента в объект?
Объекты и прототипы
Сложность вставки элемента в объект — O(1) в среднем случае, потому что объект работает как хеш-таблица с доступом по ключу за константное время.
O(1) в среднем
Вставка свойства в объект — константное время: хеш-таблица вычисляет позицию по ключу напрямую, без перебора:
obj[key] = value; // O(1) в среднем
obj.newProp = 123; // O(1)Не зависит от количества существующих свойств.
Худший случай — O(n)
При коллизиях в хеш-таблице (разные ключи дают одинаковый хеш) элементы попадают в одну «корзину», и операции могут деградировать до O(n). Но с хорошей хеш-функцией это редкость.
Также при рехешировании (расширении таблицы) отдельная вставка может занять больше, но амортизированно остаётся O(1).
Сравнение с другими структурами
- Объект/Map (хеш-таблица) — вставка O(1) в среднем.
- Массив в конец (
push) — O(1) амортизированно. - Массив в начало/середину (
unshift/splice) — O(n) (сдвиг элементов). - Отсортированная структура — O(log n) или O(n) для сохранения порядка.
Итерация — отдельно
Вставка O(1), но перебор всех свойств — O(n).
Коротко для собеседования
Вставка в объект — O(1) в среднем (хеш-таблица: позиция по ключу за константное время, не зависит от числа свойств), O(n) в худшем при коллизиях (редко). Аналогично Map.set и Set.add. Перебор свойств — O(n). Поэтому объекты/Map идеальны для быстрого добавления и доступа по ключу.