javascript - 用递归反转字符串

标签 javascript recursion

我正在研究递归,我想做一件简单的事情,比如反转字符串。该函数正在运行,但我不明白它是如何工作的,这让我非常沮丧。(递归部分)

function reverseString(myString) {
if (myString == "") {
    return "";
}
else {
    return reverseString(myString.substr(1)) + myString.charAt(0);
}}

假设我有一个字符串“abcd”。所以第一个循环是:

"myString.substr(1)"从 "abcd"-> "bcd"和 "charAt( 0)”得到“b”;

结果会是“bcd + b”?还是在递归完成时执行“myString.charAt(0)”?

我完全迷路了……整个过程是怎样的?

最佳答案

"myString.substr(1)" makes from "abcd" -> "bcd" and then "charAt(0)" gets "b";

不,myString.substr(1)返回值为 "bcd" 的新字符串, myString 的值不会改变,所以当myString.charAt(0)称为值 "a"返回是因为它正在用值 "abcd" 索引原始字符串

关于javascript - 用递归反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38537728/

相关文章:

javascript - MongoDB:如何更新嵌套数组

python - 随机排列 DataFrame 的行,直到列中的所有连续值都不同?

javascript - 如何基于 api 调用遍历树/数组 -Javascript

javascript - Svg 单击事件无法正常工作

javascript - streams2 Writable - 有没有办法定义 "_end"函数?

javascript - 如何防止图像 map 区域点击传播到链接?

javascript - 如何跨 NodeJs 应用程序和模块正确重用与 Mongodb 的连接

python - 为什么在递归函数中计数器没有重置为 0?

c++ - 如何创建返回与函数具有相同签名的仿函数的函数?

java - 递归创建新对象是否比创建引用慢?