带符号的反数

Reverse number with sign

如何反转包含符号的数字? (例如:-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));

您可以使用绝对值保存标志并稍后申请。

function reverse(n) {
    return (n > 0 || -1) * Math.abs(n).toString().split('').reverse().join('');
}

console.log(reverse(-1000));
console.log(reverse(1000));

您可以在处理前检查号码的符号。这是一个工作示例

function reverseNumber(num)
{
  sign = num < 0 ? '-' : '';
  num = Math.abs(num) + "";
  return Number(sign + num.split("").reverse().join(""));
}
console.log(reverseNumber(-1000));

这是一种使用辅助函数处理反转的方法,然后根据 n 的符号在 reverseNumber 函数中有条件地调用它:

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));

你也可以用 Math.sign() to check whether the number is positive, negative or zero. Then use a flag e.g negative to false initially if Math.sign(num) returns negative value i.e <1 then set it to true. Also use 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))

设置一个negative标志f数为负数,对数的绝对值进行处理,在返回前将其转换回负数,如果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));

先将数字转换为绝对值,然后取反。如果数字是负数,则在末尾附加“-”号。此外,如果反向数字有前导零,则在正则表达式的帮助下将其消除。

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));

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;
}