Javascript 使用终止标点符号反转字符串会导致错误
我正在使用下面的代码在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
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('')