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"));
我传递了非-palindromic值123432
,但它返回true值。
谁知道我的回文功能有什么问题?如果有人能检查我的逻辑,我真的很感激。
答案 0 :(得分:4)
您需要将a的值指定为返回函数
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"));
答案 1 :(得分:1)
试试这个,String是不可移动的,所以你需要将反向的String分配给变量,或者像这样与原始和反向的String进行比较。
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"));