你能解释一下为什么这段代码会返回
' xxxcba'
虽然我只有return 'xxx';
命令?
function reverseString(str) {
if (str === '')
return 'xxx';
else
return reverseString(str.substr(1)) + str.charAt(0);
}
console.log(reverseString('abc'));

答案 0 :(得分:0)
如果您希望以递归方式执行字符串的反转,那么当您从返回中删除xxx
并使用''
替换时,您将看到魔法。您没有正确处理基本案例
答案 1 :(得分:0)
您有以下内容:
reverseString("abc")
== reverseString("bc") + "a"
== reverseString("c") + "b" + "a"
== reverseString("") + "c" + "b" + "a"
== "xxx" + "c" + "b" + "a"
== "xxxcba"