在JavaScript中反转一个数字

3

我想按照教程反转一个数字t。首先我已经将数字作为参数传递了。我使用to String函数将数字转换为字符串。然后我使用split("").reverse().join("")来反转数字。 我的代码如下:

<script type="text/javascript">


        function reverse_the_string(num) {
            num = String(num);
            // str = num.toString;
            num.split("").reverse().join("");
            return;
        }
        console.log(reverse_the_string(56789));
    </script>

然而我收到一个“undefined”的错误?有人能解释一下是什么问题吗?

2
一行代码:return String(num).split("").reverse().join(""); - Rayon
@SatejS:
  • 步骤1:num.split("") 返回一个由给定数字的每个数字组成的数组。例如 12345 --> [ '1', '2', '3', '4', '5' ]
  • 步骤2:.reverse()返回一个元素顺序相反的数组。所以,[ '1', '2', '3', '4', '5' ] 将变成 [ '5' , '4', '3', '2', '1' ]
  • 步骤3:.join('') 是一个数组方法,用于从元素创建字符串。因此, [ '5' , '4', '3', '2', '1' ] 将变为 '54321'
这种方法是正确的。他只是忘了返回值 :)
- Dong Nguyen
我所做的是返回而不是返回num,我认为返回也传递了结果?我想知道为什么仅使用返回不起作用? - pallavidestiny22
你需要指定你想要返回什么。JavaScript解析器无法猜测你想要返回哪个变量。因此,你需要自己指定。想象一下你在商店里,你让员工卖给你东西,而不是卖给你一个蓝色的球。对于第一个问题,员工仍然不知道你想要什么。 - Mark Baijens
5个回答

5
您没有返回结果。请使用:
return num.split("").reverse().join("");

如果您只使用 return,那么将返回 undefined

function reverse_the_string(num) {
    return String(num).split("").reverse().join("");
}

document.write(reverse_the_string(56789));

注意:反转仅适用于小数字!


如果输入是 10101010101010101010101010,就必须采取一些措施。 - Rayon
那是个问题。但我认为,实际上这并不重要。 - Nina Scholz
我做的是返回 return 而不是 return num,我认为返回 return 也会传递结果?我想知道为什么只使用 return 不起作用? - pallavidestiny22
@RayonDabre——如果它是"10101010101010101010101010",那也不是问题。;-) - RobG
@pallavidestiny22,关于JavaScript语法的工作原理,请参阅文档中的返回语句。 - Nina Scholz
@RobG,但如果它是一个“数字”呢? - Rayon

2

Try this (Recursive Method)

 
function reverseNum(num) {
    if(num == 0)return 0;
    let x = Math.pow(10, (num + '').length - 1);
    return (num % 10) * x + reverseNum(Math.floor(num / 10));
} 
console.log(reverseNum(432));


2
将数字转换为字符串并反转字符串的解决方案是一个很好的解决方案,但它并不能涵盖所有情况。有两种情况需要解决:
  1. 反转负数时不保留符号。
  2. 反转以零结尾的数字后,会出现前导零,例如12300的反转将是“00321”,而应该是“321”。

使用正则表达式函数

var reversed = parseFloat(num.toString().split("").reverse().join()) * Math.sign(num);

使用箭头函数
var reversed = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num);

0
将数字变量转换为字符串:
var n = 4557
n = n.toString();

然后执行以下代码。

 //**Reverse the Number In javascript** 
 var result = "";
 function reverseNumber(n){
   // reverse the number via loop 
   for(var i=x.length-1; i>=0; i--){  
     result+=n[i];
   }
   return Number(result)
 }
 var x = prompt("Enter a number : ");
 console.log(reverseNumber(x))
            


-2
为了反转数字/字符串,您可以参考以下方法: (不使用slice()substring()方法)
function reverse(str) {
  var rev = "";
  number = parseInt(str);
  for (; number > 0;) {
    rev += number % 10;
    number = Math.floor(number / 10)
  }
  return rev;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接