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