JavaScript:如何翻转一个数字?

18

以下是我反转(如同镜子一般)给定数字的源代码。 我需要使用数组的反转方法来反转这个数字。

<script>
   
    var a = prompt("Enter a value");
    var b, sum = 0;
    var z = a;
    while(a > 0)
    {
      b = a % 10;
      sum = sum * 10 + b;
      a = parseInt(a / 10);
    }
    alert(sum);
</script>


你正在将所有数字加入总和,那么你应该如何反转它呢?你是指像123变成321这样反转单个数字吗? - Dominic
你的意思是要从用户那里获取输入,比如27,然后得到镜像反转后的数字72作为结果吗? - Abhijeet Chopra
该问题与数组中的项的编号无关。 - vsync
19个回答

0

使用纸张上的数字反转逻辑并尝试,您必须注意除法,因为它会返回浮点值。这就是为什么我们需要使用 parseInt()

function palindrome()
{
  var a = document.getElementById('str').value;
  var r=0 ,t=0;
  while(a>0){
          r=a%10;
          t=t*10+r;
          a=parseInt(a/10);
      }

  document.write(t);
}
<form>
    <input type="text" id="str"/>
    <input type="submit" onClick="palindrome()" />
<form>


0
假设您想将其作为真实数字而不是字符串进行反转,请尝试以下操作:
function reverseNumber(num){
    num = num + '';
        let reversedText = num.split('').reverse().join('');
        let reversedNumber = parseInt(reversedText, 10);
    console.log("reversed number: ", reversedNumber);
        return reversedNumber;
  }

0
function reverseInt(n) {
    let x = n.toString();
    let y = '';

    for(let i of x) {
        y = i + y
    }
    return parseInt(y) * Math.sign(n);
}

0
function add( num:number){  //159
let d : number; 
let a : number =0;  
while(num > 0){    //159  15  1
    d = num % 10;  
    a = a * 10 + d;  //9  95   951
    num = Math.floor(num/10);  // 15  1  0
}
 return a;  //951
}
console.log(add(159));

4
请尽量不仅提供代码片段,如果可能的话还要提供一些细节和解释,因为这将使答案更清晰和有帮助。 - Dario Piotrowicz

0

使用JavaScript的reverse()和Math.sign()函数,您可以将正数和负数都进行反转。

var enteredNum = prompt("Enter integer");

function reverseInteger(enteredNum) {
    const reveredNumber = enteredNum.toString().split('').reverse().join('');
    return parseInt(reveredNumber)*Math.sign(enteredNum);
}

alert(reverseInteger(enteredNum));

-1

最简单的方法是:

  1. 将其转换为字符串并应用 reverse() 方法
  2. 将其转换回数字
  3. 使用 Math.sign() 检查提供的值是否为负数或正数

以下是我的解决方案。

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

console.log(reverseInt(12345));


-1
简单而甜美:
function reverseNumber(num){
   return parseInt(num.toString().split("").reverse().join(""));
}

使用此函数可能会在未来出现哪些错误? - Saptarshee Das

-1

上述代码对于负数无效。请改用以下代码:

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    return  ((x>=0) ? ((x==(x = parseInt(x.toString().split("").reverse().join("")))) ? true:false) : false);
};

-2

我对于反转字符串的解决方案:

var text = ""
var i = 0
var array = ["1", "2", "3"]
var number = array.length
var arrayFinal = []

for (i = 0; i < array.length; i++) {
    text = array[number - 1]
    arrayFinal.push(text)
    text = ""
  number = number - 1
}

console.log(arrayFinal)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接