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