如何在 JavaScript 中就地反转字符串?
2022-08-29 23:01:26
当字符串通过 return 语句传递给函数时,如何在 JavaScript 中就地反转字符串,而不使用内置函数(等)?.reverse()
.charAt()
当字符串通过 return 语句传递给函数时,如何在 JavaScript 中就地反转字符串,而不使用内置函数(等)?.reverse()
.charAt()
只要您正在处理简单的ASCII字符,并且您乐于使用内置函数,这将起作用:
function reverse(s){
return s.split("").reverse().join("");
}
如果您需要支持 UTF-16 或其他多字节字符的解决方案,请注意,此函数将提供无效的 unicode 字符串或看起来很有趣的有效字符串。您可能需要考虑这个答案。
[...s] 是 Unicode 感知的,一个小的编辑给出:-
function reverse(s){
return [...s].reverse().join("");
}
以下技术(或类似技术)通常用于反转JavaScript中的字符串:
// Don’t use this!
var naiveReverse = function(string) {
return string.split('').reverse().join('');
}
事实上,到目前为止发布的所有答案都是这种模式的变体。但是,此解决方案存在一些问题。例如:
naiveReverse('foo