我写了下面的代码来找出回文数字/字符串。
<!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>然而,即使我在框中输入回文字符串,它也给出了else语句的o/p。我不认为有什么问题。请更正代码并解释错误所在。谢谢你,sameer
发布于 2015-02-08 20:31:15
应该从str.length -1开始反转(因为字符串是零索引的(即,字符串中的第一个位置是0而不是1,因此,对于5个字符的字符串,最后一个位置是4,而不是5)。另外,为什么不使用一些现有的函数,而不是重新发明weel呢?
x = '1234'
y = x.split('').reverse().join('')
alert(y)发布于 2015-02-08 20:25:45
你在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");}
}发布于 2015-02-08 20:28:08
str.length函数精确地返回数组的实际长度,而不是偏移量,也就是说,简单地说,数组的最后一个索引是1减去数组的长度……
https://stackoverflow.com/questions/28393824
复制相似问题