我写了以下代码来找出回文数/字符串。
<!doctype html>
<html>
<head>
<script>
function Palindrom() {
var rev="";
var str= document.getElementById("name1").value;
for ( var i=str.lenght; i>=0; i--)
{
var rev=rev + str.charAt(i);
}
if (str == rev)
{
alert ("Enter value is palindrome");
}
else
{alert ("Value is not palindrome");}
}
</script>
</head>
<body>
Enter String:<input type="text" name="Name" id="name1">
<button type="button" onclick="Palindrom();"> Check it</button>
</body>
</html>
然而,即使我在框中输入回文字符串,它也会给出其他声明的o / p ..我不认为有什么不对。请更正代码并解释错误。谢谢,同样
答案 0 :(得分:1)
你应该在str.length - 1处开始反转(因为字符串是零索引的(也就是说,字符串中的第一个位置是0而不是1,因此,对于5个字符的字符串,最后一个位置是4,而不是5)。另外,为什么不使用一些现有的功能而不是重新发明?
x = '1234'
y = x.split('').reverse().join('')
alert(y)
答案 1 :(得分:0)
str.lenght
此外,您应该使用str.length-1
工作示例:http://jsbin.com/ponoro/2/edit
示例:
function Palindrom() {
var rev="";
var str= '12342554321';
for ( var i=str.length-1; i>=0; i--)
{
var rev=rev + str.charAt(i);
}
alert(rev)
if (str == rev)
{
alert ("Enter value is palindrome");
}
else
{alert ("Value is not palindrome");}
}
答案 2 :(得分:0)
完全str.length函数返回数组的实际长度而不是偏移量,即用简单语言说,数组的最后一个索引是1减去数组的长度......
答案 3 :(得分:0)
编辑你的拼写错误&#34; .length&#34; ......如果你愿意,也可以消除循环。
function checkPalindrome(num){
if(num == parseInt(num.toString().split('').reverse().join(''))){
return true;
}
return false;
}