Итак, это похоже на супер базовый вопрос, но мне интересно, что javascript, встроенный в.toUpperCase() method-, - это эффективность времени O (n) или O (1)?
Я всегда считал, что это будет постоянное время, но теперь, когда я думаю об этом... "под капотом", не нужно ли этому методу проходить через каждого персонажа, чтобы проверить, является ли он нижним регистром один за другим? (поэтому делает его O (n)
Алгоритм, описанный в String.prototype.toLowerCase( )
спецификации, равен O (n). Каждый код исходной строки (или строковое представление исходного объекта) копируется и преобразуется в новый код.
Тот факт, что toUpperCase
и toLowerCase
возвращают новые строки (поскольку строки JavaScript неизменяемы) достаточно, чтобы убедиться, что операция занимает линейное время, а не константа.