Search code examples
javascriptfunctionreturnpalindrome

Why doesn't this function exit after the first iteration?


I do understand how the following function works in general. BUT why doesn't it exit after the first iteration (when there is a palindrome)? It checks the first character against the last in the if statement, which is true, what should (in my logic) execute the return statement... Thank you for any help explaining this! :)

function palindrome(str) {
  var lowerCaseStr = str.toLowerCase();
  for (var i = 0; i < lowerCaseStr.length; i++)
  debugger;
    if (lowerCaseStr[i] === lowerCaseStr[lowerCaseStr.length - i - 1]){
      return true;
    }
  return false;
}

Solution

  • You need to switch the logic, check for inequality and return false. If you reach the end, return true.

    function palindrome(str) {
        var lowerCaseStr = str.toLowerCase();
        for (var i = 0; i < lowerCaseStr.length; i++) {
            debugger;
            if (lowerCaseStr[i] !== lowerCaseStr[lowerCaseStr.length - i - 1]) {
                return false;
            }
        }
        return true;
    }