我确实了解以下功能的总体工作原理。但是为什么它在第一次迭代后(存在回文)就不退出?它检查if语句中的最后一个字符与最后一个字符,这是对的,按照我的逻辑,应该执行什么返回语句...感谢您对解释这一点的任何帮助! :)

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

最佳答案

您需要切换逻辑,检查不等式并返回false。如果到达末尾,请返回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;
}

09-11 19:23