2014-09-22 28 views
1

标题几乎说明了一切。我知道还有其他方法可以确定一个字符串是否是一个回文(例如,将字符串转换为数组,将它反转,加入并将结果字符串与原始字符串进行比较),但我只是试图使用递归目前。返回预期值的唯一场景如下:JavaScript:我在JavaScript中练习递归,并试图从条件返回true或false,但我什么也没看到

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; 
    } 
}; 
+0

如果'str.charAt(0)== str.slice(-1)'为true,那么你不返回任何东西的唯一情况是。 – 2014-09-22 23:23:55

回答

4

在你有条件的第二分支,你想要返回结果:

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

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

+0

嘿,特德 - 有谁告诉过你今天有多少摇滚?因为你这样做。你摇滚!谢谢!我会在十分钟内将此标记为答案。 – 2014-09-22 23:25:28

+0

@MichaelP。 - 谢谢。 :) – 2014-09-22 23:26:49

+0

@MichaelP。请将此标记为答案 – 2014-09-22 23:26:56

相关问题