Javascript 简单的回文函数

Javascript simple palindrome function

 function palindrome(str) { // "Hello there"
   str.toLowerCase(); // "hello there"
   str = str.replace(/\s/g, ""); // "hellothere"
   var a = str;
   a.split("").reverse().join(""); // a = "erehtolleh"
   return (str === a); // "hellothere" === "erehtolleh"
 }

 alert(palindrome("123432"));

我传递了非回文值 123432 但它是 returns 真实值。 有人知道我的回文函数有什么问题吗?如果有人可以检查我的逻辑,我将不胜感激。

您需要将 a 的值赋给它的一个 return 函数

function palindrome(str) {                       // "Hello there"
    str.toLowerCase();                               // "hello there"
    str = str.replace(/\s/g, "");                    // "hellothere"
    var a = str;                             
    a = a.split("").reverse().join("");                  // a = "erehtolleh"
    return (str === a);                             // "hellothere" == "erehtolleh"
}


alert(palindrome("malayalam"));

试试这个,字符串是不可变的,因此您需要将反转的字符串分配给变量,或者像这样与原始字符串和反转的字符串进行比较。

function palindrome(str) { // "Hello there"
  str.toLowerCase(); // "hello there"
  str = str.replace(/\s/g, ""); // "hellothere"
  // var a = str.split("").reverse().join(""); // a = "erehtolleh"
  return (str === str.split("").reverse().join("")); // "hellothere" == "erehtolleh"
}


alert(palindrome("12321"));
alert(palindrome("1232"));