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