📅  最后修改于: 2023-12-03 14:50:35.874000             🧑  作者: Mango
在 JavaScript 中,想要将一个数字反转,有多种方式可以实现。本文将介绍三种方法。
这是最简单的方法。我们将数字转成字符串,然后将字符串反转,最后再将其转回数字类型即可。
function reverseNumber1(num) {
const reversedNum = parseInt(num.toString().split('').reverse().join(''));
return reversedNum * Math.sign(num);
}
这里使用了三个字符串方法:toString()
将数字转成字符串,split()
将字符串转成字符的数组,reverse()
反转数组元素的顺序,join()
将数组转回字符串。最后要注意将得到的结果乘以数字的符号,以保持其正负性。
这是一种更直观的方法。我们通过不断地取当前数字的最后一位,添加到结果上,并不断地将数字除以10来缩小规模。当数字为0时,循环停止。
function reverseNumber2(num) {
let reversedNum = 0;
while (num !== 0) {
const lastDigit = num % 10;
reversedNum = reversedNum * 10 + lastDigit;
num = Math.trunc(num / 10);
}
return reversedNum * Math.sign(num);
}
这里使用了两个数学函数:Math.trunc()
取整函数,保证了整除运算的正确性;Math.sign()
符号函数,保证了结果的正负性。
这是一种优雅但不太高效的方法。我们可以先得到当前数字的最后一位,然后将其乘以10的次幂,递归地将剩余部分传递给函数,并与这个数值相加。
function reverseNumber3(num) {
if (num < 10) {
return num;
}
const lastDigit = num % 10;
const remainingDigits = Math.trunc(num / 10);
const reversedNum = reverseNumber3(remainingDigits);
return lastDigit * Math.pow(10, num.toString().length - 1) + reversedNum;
}
这里使用了一个 JavaScript 内置函数:Math.pow()
幂函数。同时,由于递归次数较多,这种方法在处理大量数据时可能不够高效。