Javascript 使用终止标点符号反转字符串会导致错误

Javascript 使用终止标点符号反转字符串会导致错误,javascript,arrays,sorting,Javascript,Arrays,Sorting,我正在使用下面的代码在javascript中反转字符串 const reverseString = str => [...str].sort(() => 1).join(''); 我的所有测试都通过了,除了字符串末尾包含标点符号的测试。e、 饿了,神枪手^。是什么导致了错误 测试结果 我想这是因为它在ASCII表中的位置,为什么不使用reverse() 试试这个: const reverseString=str=>[…str].sort(()=>-1.join(“”) 或者更好 c

我正在使用下面的代码在javascript中反转字符串

const reverseString = str => [...str].sort(() => 1).join('');
我的所有测试都通过了,除了字符串末尾包含标点符号的测试。e、 饿了
神枪手^
。是什么导致了错误

测试结果
我想这是因为它在ASCII表中的位置,为什么不使用
reverse()

试试这个:

const reverseString=str=>[…str].sort(()=>-1.join(“”)

或者更好

const reverseString=str=>[…str].reverse().join(“”)

在加入数组元素之前,可以使用
reverse()
反转数组

功能反向限制(str){
返回[…str].reverse().join(“”);
}
log(反向限制(“我饿了!”);

控制台日志(反向限制(“神枪手”)如果不想使用拆分反向和联接,请使用简单循环

功能反向限制(str){
let length=str.length
让final=''
while(长度-->0){
最终+=str[长度]
}
返回决赛
}
log(反向限制(“我饿了!”);
控制台日志(反向限制(“神枪手”)为什么
.sort()
?那打算做什么?(无论如何,这会导致未定义的行为)
Input:    "I am hungry!"
Expected: "!yrgnuh ma I"
Received: "u!Iyrgn h ma"

Input:    "sharpshooter^"
Expected: "^retoohsprahs"
Received: "h^osaretorhsp"
const reverseString = str => [...str].reverse().join('')