标题几乎说明了一切。我知道还有其他方法可以确定字符串是否是回文(例如,将字符串转换为数组、反转它、加入它,并将生成的字符串与原始字符串进行比较),但我只是想使用递归目前。返回预期值的唯一场景如下:
isPalindrome("a"); // true
isPalindrome("aalsdjlkjdfsdkjf"); // false
这不会返回任何内容:
isPalindrome("amma"); //
这是我的函数代码:
function isPalindrome (str) {
if (str.length <= 1) {
return true;
} else if (str.charAt(0) == str.slice(-1)) {
isPalindrome(str.slice(1,-1));
} else {
return false;
}
};
最佳答案
在你的条件的第二个分支中,你想要返回结果:
return isPalindrome(str.slice(1,-1));
否则它只是完成递归调用,退出if
语句,并返回undefined
(因为它在结束之前没有遇到return
语句的功能)。
关于JavaScript:我在 JavaScript 中练习递归,并试图从条件返回 true 或 false,但什么也没看到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984540/