簡體   English   中英

如何反轉 JavaScript 中的負數?

[英]How to reverse a negative Number in JavaScript?

我試圖以這種方式獲得 output,不幸的是,它沒有返回預期值......

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

function reverseInt(n) {
    return Math.sign(n)*parseInt(n.toString().split('').reverse().join(''));
}

您的基本邏輯是正確的,但您需要處理正整數和負整數輸入之間的差異。 在后者的情況下,您希望開始在第二個字符上構建反轉字符串。 此外,當返回反轉的負數字符串時,您還需要在前面加上一個負號。

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

編輯:一些答案正在使用基本字符串反轉功能。 但是,這個答案試圖用您的原始方法解決問題。

希望它會返回您期望的輸出。

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

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

這將為您提供您通過的數字的相反數

跳過減號並將其添加到最后以獲得類似 -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"));

一個簡短的小功能,可以完成這項工作:)

享受

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

如果您想使用純數學解決方案,那么它應該是這樣的:

從數字中刪除最后一位數字並將其附加到反向數字變量的末尾,直到原始數字消失並且反向數字完成。

代碼:

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

這可能有點矯枉過正,但是這里是我反轉 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))

 function reverseInt(n) { const isNegativeNumber = Boolean(n < 0) const reversedStringifiedNumber = n.toString().split('').reverse().join('') return parseInt(`${isNegativeNumber? '-': ''}${reversedStringifiedNumber}`) } console.log(reverseInt(1234)) console.log(reverseInt(-1234)) console.log(reverseInt(0)) console.log(reverseInt(-0))

對於負/非負整數(不是字符串),這將起作用。

const reverseInteger = (int) => {
    let reversed = '';
    let sign = int < 0 ? 1 : 0;
    let convertIntToString = int.toString();
    for (let i = sign; i < convertIntToString.length; i++) {
        reversed = parseInt(convertIntToString[i] + reversed);
        //parseInt to convert to integer, doing this to mostly remove 
        //leading zeros
    }
    return int < 0 ? "-" + reversed : reversed;
};

console.log(reverseInteger(789));
console.log(reverseInteger(-51989000));

這是正整數和負整數的解決方案

function reverseInteger(num){
  let isNegative = false;
  let integerString = String(num)

  if (Math.sign(num) === -1) {
    isNegative = true;
    integerString = integerString.replaceAll("-", "");
  }

  const reversedStringArray = String(integerString).split("").reverse("");
  const result = reversedStringArray.toString().replaceAll(",", "");

  return isNegative ? Number(`-${result}`) : Number(result);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM