Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入回文数_Javascript_Jquery_Arrays_Validation_Input - Fatal编程技术网

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;
    }