如何在JavaScript中反转负数?

时间:2018-08-10 06:03:58

标签: javascript loops for-loop foreach

不幸的是,我试图以这种方式获得输出,但是它没有返回期望值...

function reverseInt(int){
    let intRev ="";
    for(let i= 0; i<int.length; i++){
        intRev = int[i]+intRev ;
    }
    return intRev ;
}
console.log(reverseInt("-12345"));

8 个答案:

答案 0 :(得分:11)

使用

BEGIN

答案 1 :(得分:4)

您的基本逻辑是正确的,但是您需要处理正整数输入和负整数输入之间的差异。对于后者,您想开始在 second 字符上构建反向字符串。另外,在返回反向的负数字符串时,还需要在前面加上一个负号。

function reverseInt(int){
    let intRev = "";
    let start = int < 0 ? 1 : 0;
    for (let i=start; i<int.length; i++) {
        intRev = int[i] + intRev;
    }
    return int < 0 ? '-' + intRev : intRev;
}

console.log("12345 in reverse is:  " + reverseInt("12345"));
console.log("-12345 in reverse is: " + reverseInt("-12345"));

编辑:一些答案正在使用基本字符串反转功能。但是,此答案可以解决您使用原始方法的问题。

答案 2 :(得分:1)

希望它会返回您期望的输出。

function reverseInt(int){
    const intRev = int.toString().split('').reverse().join('');
    return parseInt(intRev) * Math.sign(int);
}
alert(reverseInt("-12345"));

答案 3 :(得分:0)

function reverseInt(number){
    let intRev ="";
    let len=number.toString().length;
    for(let i=len i>0; i--){
        intRev =intRev + int[i];
    }
    return intRev;
}

这将为您提供与您通过的号码相反的密码

答案 4 :(得分:0)

跳过减号并最后加上它,得到的结果是-54321。

示例:

function reverseInt(int){
    let intRev ="";
    for(let i= 1; i<int.length; i++){
        intRev = int[i]+intRev ;
    }
    intRev ='-'+intRev;
    return intRev ;
}
console.log(reverseInt("-12345"));

答案 5 :(得分:0)

一个简短的小功能:)

享受

function reverseInt(int){
    const sign = int.match('-') ? '-' : '';
    return sign + Math.abs(int).toString().split('').reverse().join('');
}
console.log(reverseInt("-12345"));

答案 6 :(得分:0)

如果要使用纯数学解决方案,则应该是这样的:

从数字中删除最后一位数字,并将其附加到末尾 反转数字变量,直到原始数字消失并且 倒数完成。

代码:

var reverse = function(x) {
    let reverse = 0;
    let sign = Math.sign(x);
    if (sign === -1) {
        x = x*sign;
    }
    while (x > 0) {
        reverse = (reverse * 10) + (x%10);
        x = parseInt(x/10, 10);
    }
    return reverse * sign;
};

答案 7 :(得分:0)

这可能有点矫枉过正,但这里是我反转 int 的方法。

将参数转换为字符串,使用字符串反向函数并加入数组。为了检查参数是正数还是负数,我们检查从 Math.sign() 返回的内容。有一些快捷方式可以将反向项转换回 int。这可以扩展为检查 int 是否为 0,例如,它不是防弹的。 .

function reverse(int){
  let r = (Math.sign(int) > 0) ? +[...Array.from(int.toString()).reverse()].join('') : -Math.abs([...Array.from(int.toString()).reverse()].join('').replace('-',''));
  return r
}
console.log(reverse(-123))