我一直试图通过数字的位置(使用i = 0
和j = array.length
)创建一个获取数组的输入并检查它是否是回文数。
我只是不知道如何从这里继续以及我的代码出了什么问题。
这是我的功能:
function isPalindrome() {
var input;
var array = input.split("");
var i = 0;
var j = array.length;
while (i < j) {
if (array[i] != array[j]) {
return false;
} else {
i++;
j--;
}
}
return true;
}
答案 0 :(得分:4)
一些事情。您没有isPalindrome方法的参数。你也没有将价值传递给它。你也可以反转数组并检查它而不需要额外的循环。即:1221逆转== 1221(真),而1223逆转!= 3221(假)
查看我的fiddle.
$("#checkPalindrome").click(function () {
// added .val() here so we get the value.
var inp = $("#input").val();
$("#result").html("("+isPalindrome(inp)+")");
});
// added param str
function isPalindrome(str) {
// split the string into an array, reverse it, join it into a string again
// then check if it's equal to the original string passed.
return str.split('').reverse().join('') == str;
}
答案 1 :(得分:1)
$("#checkPalindrome").click(function () {
var number = $("#input").val();
$("#result").text(isPalindrome(number));
});
function isPalindrome(number) {
return String(number) == String(number).split("").reverse().join("");
}
http://jsfiddle.net/qajzadby/11/ 爱我一些1行功能&gt; :) 还修复了你的号码检索
答案 2 :(得分:0)
首先,input
中的undefined
。如果它可能等于某个字符串,则看起来像这一行:
if (array[i] != array[j])
是罪魁祸首,因为j
最初等于array.length
。你应该array[j - 1]
。
答案 3 :(得分:0)
你的小提琴中有一些东西需要修复
您没有阅读该字段的值。将此var input = $("#input")
更改为var input = $("#input").val()
您没有将值传递给函数。改变这个:
function isPalindrome() {
var input;
到
function isPalindrome(input) {
您将j
设置为array.length
,以便读取数组中应该为array.length-1
的最后一个元素
这是一个更新的,有效的小提琴:http://jsfiddle.net/qajzadby/10/
答案 4 :(得分:0)
有些事情正在这里......
1)您没有通过某些输入调用您的函数
EG-&GT; isPalindrome(myPalindromeNumber)
2)array.length
将返回te数组中元素的总数,因此您应该将其编入索引为array[i]!=array[j-1]
答案 5 :(得分:0)
/* TODO: check if a number is a פילנדום on input's content change */
$("#checkPalindrome").click(function () {
var input = $("#input").val();
$("#result").text(isPalindrome(input));
});
function isPalindrome(input) {
var array = input.split("");
var i = 0;
var j = array.length;
for(i=0;i < j ;i++){
if(array[i] != array[j-i-1]){
return false;
}
}
return true;
}
<强> DEMO 强>