JavaScript:I';我在JavaScript中练习递归,我试图从一个条件返回true或false,但什么也看不到

JavaScript:I';我在JavaScript中练习递归,我试图从一个条件返回true或false,但什么也看不到,javascript,recursion,Javascript,Recursion,标题几乎说明了一切。我知道还有其他方法可以确定字符串是否为回文(例如,将字符串转换为数组、反转、连接字符串,并将结果字符串与原始字符串进行比较),但我现在只尝试使用递归。返回预期值的唯一方案如下: isPalindrome("a"); // true isPalindrome("aalsdjlkjdfsdkjf"); // false 这不会带来任何回报: isPalindrome("amma"); // 以下是我的函数代码: function isPalindrome (str) {

标题几乎说明了一切。我知道还有其他方法可以确定字符串是否为回文(例如,将字符串转换为数组、反转、连接字符串,并将结果字符串与原始字符串进行比较),但我现在只尝试使用递归。返回预期值的唯一方案如下:

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;
  }
};
函数isAlindrome(str){

如果(str.length在条件的第二个分支中,您希望返回结果:

return isPalindrome(str.slice(1,-1));

否则,它只需完成递归调用,退出
if
语句,并返回
undefined
(因为它在函数结束之前没有遇到
return
语句)。

在条件的第二个分支中,您希望返回结果:

return isPalindrome(str.slice(1,-1));

否则它只需完成递归调用,退出
if
语句,并返回
undefined
(因为它在函数结束之前没有遇到
return
语句)。

唯一不返回任何内容的情况是if
str.charAt(0)==str slice(-1)
是真的。唯一不返回任何内容的情况是
str.charAt(0)=str.slice(-1)
是真的。嘿,特德——有人告诉过你今天你摇滚了多少吗?因为你摇滚了。谢谢!我会在十分钟内把这个标记为答案。@MichaelP。-谢谢。:)嘿,特德——有人告诉过你你今天摇滚了多少吗?因为你知道。你摇滚了!谢谢!我会在十分钟内记下答案。@MichaelP.-谢谢。:)