Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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_Palindrome - Fatal编程技术网

Javascript 数字回文代码不工作

Javascript 数字回文代码不工作,javascript,palindrome,Javascript,Palindrome,我一直在做代码战争中的“数字回文1”卡塔,我觉得这段代码应该能用,但它说回文(1221)是假的——显然它应该是真的。如果有人能明白为什么会发生这种情况,我将不胜感激!这个挑战说,如果num小于0,或者不是整数,那么它应该返回“无效” function palindrome(num) { if(typeof num == 'number'){ if(Number.isInteger(num) && num>=0){

我一直在做代码战争中的“数字回文1”卡塔,我觉得这段代码应该能用,但它说回文(1221)是假的——显然它应该是真的。如果有人能明白为什么会发生这种情况,我将不胜感激!这个挑战说,如果num小于0,或者不是整数,那么它应该返回“无效”

    function palindrome(num) { 

    if(typeof num == 'number'){

        if(Number.isInteger(num) && num>=0){
              return(toString(num) === toString(num).split('').reverse().join(''));
              }
        else{return 'Not valid';
        }
        }
    else { return 'Not valid';
    }
   }

toString
是一种
Number的方法。prototype
因此您可以从数字中调用它:

函数回文(num){
if(typeof num==“number”){
if(Number.isInteger(num)&&num>=0){
return(num.toString()==num.toString().split(“”).reverse().join(“”));
}否则{
返回“无效”;
}
}否则{
返回“无效”;
}
}
console.log(回文(500))

console.log(palindrome(505))
toString
是一种编号方法。prototype因此您可以从编号中调用它:

函数回文(num){
if(typeof num==“number”){
if(Number.isInteger(num)&&num>=0){
return(num.toString()==num.toString().split(“”).reverse().join(“”));
}否则{
返回“无效”;
}
}否则{
返回“无效”;
}
}
console.log(回文(500))

log(回文(505))
您应该使用String而不是toString

function palindrome(num) { 
    if (typeof num == 'number' && Number.isInteger(num) && num >= 0) {
        return (String(num) === String(num).split('').reverse().join(''));
    }
    return 'Not valid';

}

您应该使用String而不是toString

function palindrome(num) { 
    if (typeof num == 'number' && Number.isInteger(num) && num >= 0) {
        return (String(num) === String(num).split('').reverse().join(''));
    }
    return 'Not valid';

}

您正在使用的toString方法将返回
toString(123456)=“[objectundefined]”toString(123456).split(“”).reverse().join(“”)=“]denifednU tcejbo[”
,因此它失败了。将数字转换为字符串的最佳方法是将其与“”连接起来,如12345+”;

您正在使用的toString方法将返回
toString(123456)=“[对象未定义]”&toString(123456).split(“”).reverse().join(“”)denifednU tcejbo[“
因此失败。将数字转换为字符串的最佳方法是将其与”“连接起来,如12345+”;

您的代码有一些问题。 您需要像下面这样使用toString():

num.toString()
而且你不需要两个if来检查你的条件,你只需要一个if就可以了

我更新您的代码:

var a =  function palindrome(num) { 
    if(typeof num == 'number' && Number.isInteger(num) && num>=0)       
          return(num.toString() === num.toString().split('').reverse().join(''));                 
    else 
          return 'Not valid';    
}   
console.log(a(1001));

您的代码出现了一些问题。 您需要像下面这样使用toString():

num.toString()
而且你不需要两个if来检查你的条件,你只需要一个if就可以了

我更新您的代码:

var a =  function palindrome(num) { 
    if(typeof num == 'number' && Number.isInteger(num) && num>=0)       
          return(num.toString() === num.toString().split('').reverse().join(''));                 
    else 
          return 'Not valid';    
}   
console.log(a(1001));