2014-09-22 29 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

相關問題