如何反转包括符号的数字? (例如:-659 => -956
)
此外,结尾处为零的数字应按以下方式反转:
1000 => 1
50000 => 5
我当前的结果是:
-784 => 487-
1000 => 0001
这是我的功能:
function reverseNumber(num)
{
num = num.toString();
return num.split("").reverse().join("");
}
console.log(reverseNumber(-5698));
答案 0 :(得分:4)
您可以在处理前检查数字的符号。这是一个有效的例子
function reverseNumber(num)
{
sign = num < 0 ? '-' : '';
num = Math.abs(num) + "";
return Number(sign + num.split("").reverse().join(""));
}
console.log(reverseNumber(-1000));
答案 1 :(得分:2)
您可以保存该符号,并在以后使用绝对值进行应用。
function reverse(n) {
return (n > 0 || -1) * Math.abs(n).toString().split('').reverse().join('');
}
console.log(reverse(-1000));
console.log(reverse(1000));
答案 2 :(得分:0)
这是一种使用辅助函数处理反转的方法,然后根据reverseNumber
的符号在n
函数中有条件地调用它:
const reverse = s => ("" + s).split("").reverse().join("");
const reverseNumber = n => +(n < 0 ? `-${reverse(-n)}` : reverse(n));
console.log(reverseNumber(-5698));
console.log(reverseNumber(-1));
console.log(reverseNumber(-1.3));
console.log(reverseNumber(1000));
答案 3 :(得分:0)
您也可以使用Math.sign()尝试这种方式,以检查数字是正数,负数还是零。然后,如果negative
返回负值,即false
,然后将其设置为Math.sign(num)
,则最初使用标志<1
到true
。还要使用Math.abs()使其始终为正,然后再用reverse()
使其反转。最后根据negative
标志在数字前加上符号。
function reverseNumber(num) {
pos_neg = Math.sign(num);
negative = false;
if (pos_neg < 1) {
// treat as negative value
negative = true;
num = Math.abs(num);
}
num = num + "";
expression = Number(num.split("").reverse().join(""));
return negative ? - expression : expression ;
}
console.log(reverseNumber(1000));
console.log(reverseNumber(50000));
console.log(reverseNumber(-784))
答案 4 :(得分:0)
设置negative
标志为负数,使用数字的绝对值,如果negative
标志为负,则将其转换为负数,然后再返回设置为true
function reverseNumber(num){
let negative = (num<0) ? true : false;
num = Math.abs(num).toString();
num = Number(num.split("").reverse().join("") )
return negative ? (num*-1) : num
}
console.log(reverseNumber(-5698));
console.log(reverseNumber(1000));
答案 5 :(得分:0)
首先将数字转换为其绝对值,然后将其取反。如果数字为负,则在末尾添加“-”号。另外,如果反转的数字的前导零,则借助reg表达式将其消除。
function reverseNumber(num)
{
var reversed = Math.abs(num).toString().split("").reverse().join("");
reversed = (num < 0) ? reversed + "-": reversed;
return reversed.replace(/^0+/, '');
}
console.log(reverseNumber(10000));
console.log(reverseNumber(-987));
console.log(reverseNumber(-10000));
答案 6 :(得分:0)
function reverseNumber(num)
{
var sign = Math.sign(num);
return parseInt(num.toString().replace("-","").split("").reverse().join(""),10) * sign;
}
更正确地处理浮点数:
function reverseNumber(num)
{
var sign = Math.sign(num);
return Number(Math.Abs(num).toString().split("").reverse().join("")) * sign;
}