以js递归方式返回

时间:2018-01-10 22:53:27

标签: javascript recursion return

你能解释一下为什么这段代码会返回

  

' xxxcba'

虽然我只有return 'xxx';命令?



function reverseString(str) {
  if (str === '')
    return 'xxx';
  else
    return reverseString(str.substr(1)) + str.charAt(0);
}

console.log(reverseString('abc'));




2 个答案:

答案 0 :(得分:0)

如果您希望以递归方式执行字符串的反转,那么当您从返回中删除xxx并使用''替换时,您将看到魔法。您没有正确处理基本案例

答案 1 :(得分:0)

您有以下内容:

reverseString("abc")
== reverseString("bc") + "a"
== reverseString("c") + "b" + "a"
== reverseString("") + "c" + "b" + "a"
== "xxx" + "c" + "b" + "a"
== "xxxcba"