Javascript 输入回文数
我一直在尝试输入一个数组,并通过数字的位置(使用Javascript 输入回文数,javascript,jquery,arrays,validation,input,Javascript,Jquery,Arrays,Validation,Input,我一直在尝试输入一个数组,并通过数字的位置(使用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] !
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;
}
函数isAlindrome(){
var输入;
var数组=input.split(“”);
var i=0;
var j=数组长度;
而(i
首先,在
未定义的中输入。如果它可能等于某个字符串,则如下所示:
if (array[i] != array[j])
是罪魁祸首,因为j
最初等于array.length
。你应该用数组[j-1]
你的小提琴里有一些东西需要修理
您没有读取字段的值。将此var input=$(“#input”)
更改为var input=$(“#input”).val()
您没有将值传递给函数。更改此项:
function isPalindrome() {
var input;
到
您将j
设置为等于array.length
,以便读取数组中应为array.length-1的最后一个元素
这里有一个更新的、有效的小提琴:这里有两件事要做
1) 您没有使用某些输入调用函数
例如->isPalindrome(我的回文编号)
2) array.length
将返回te数组中的元素总数,因此您应该将索引设置为array[i]=数组[j-1]
一些东西。您没有isPalindrome方法的参数。您也没有将值传递给它。您还可以反转阵列并检查它,而无需执行额外的循环。ie:1221反向==1221(真),而1223反向!=3221(假)
看我的
好吧,这比我预期的要长一点,但我的做法是:
$("#checkPalindrome").click(function () {
var number = $("#input").val();
$("#result").text(isPalindrome(number));
});
function isPalindrome(number) {
return String(number) == String(number).split("").reverse().join("");
}
爱我一些单行函数>:)
还修复了数字检索/*TODO:检查输入内容更改时的数字是否为*/
/* 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;
}
$(“#检查回文”)。单击(函数(){
变量输入=$(“#输入”).val();
$(“#结果”).text(isPalindrome(输入));
});
函数isAlindrome(输入){
var数组=input.split(“”);
var i=0;
var j=数组长度;
对于(i=0;i
您没有正确使用函数参数。这在第一次开始编程的人中是很常见的。请看,您需要向函数isPalindrome(input){//la}
传递一些内容,为什么不反转字符串并检查这两个字符串是否相同?查看并选择您的反向实现作为对Edi答案的优化,当您取字符串的反向并比较两个字符串时,只需检查字符串的一半即可length@user4517807这真的是一种优化吗?检查两个字符串是否相等非常有效。谢谢,它起作用了。你能告诉我为什么我需要使用array.length-1而不是array.length吗?我真的不明白这个问题。对于exmaple-123321。右边的“1”是array.length,不是吗?值为1,2,3,3,2,1
的数组的长度为6。但是,数组是基于零的,因此最后一个元素的索引为5
。您的最后一点不正确,OP原始代码在奇数长度上的效果与偶数长度输入一样好。我认为。val()
只是返回一个字符串,因为它来自输入。也许没必要把它当作一根弦。并不是说它伤害了什么。
$("#checkPalindrome").click(function () {
var number = $("#input").val();
$("#result").text(isPalindrome(number));
});
function isPalindrome(number) {
return String(number) == String(number).split("").reverse().join("");
}
/* 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;
}