所以这看起来像是一个超级基本的问题,但我想知道javascript内置的.toUpperCase()方法 - 是时间效率O(n)还是O(1)?
我总是假设它会是恒定的时间,但现在我想起来了......"引擎盖下"不希望这个方法需要经过每个字符来检查它是否是一个一个小写的小写? (因此将其定为O(n)
答案 0 :(得分:1)
规范的String.prototype.toLowerCase ( )
中描述的算法是O(n)。原始String的每个代码点(或原始对象的String表示形式)将被复制并转换为新的代码点。
toUpperCase
和toLowerCase
返回新字符串的事实(因为JavaScript字符串是不可变的)足以验证操作是否需要线性时间,而不是常量。