首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript:如何反转一个数字?

JavaScript:如何反转一个数字?
EN

Stack Overflow用户
提问于 2016-06-27 20:14:56
回答 18查看 34.8K关注 0票数 10

下面是我用来反转(就像在镜像中)给定数字的源代码。我需要使用数组的反转方法来反转数字。

代码语言:javascript
运行
复制
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);
EN

回答 18

Stack Overflow用户

发布于 2018-09-17 19:05:22

低级整数反转:

代码语言:javascript
运行
复制
function flipInt(n){
    var digit, result = 0

    while( n ){
        digit = n % 10  //  Get right-most digit. Ex. 123/10 → 12.3 → 3
        result = (result * 10) + digit  //  Ex. 123 → 1230 + 4 → 1234
        n = n/10|0  //  Remove right-most digit. Ex. 123 → 12.3 → 12
    }  
  
    return result
}


// Usage: 
alert(
  "Reversed number: " + flipInt( +prompt("Enter a value") ) 
)

上面的代码使用bitwise operators进行快速计算

此方法比其他方法快得多,其他方法将数字转换为数组,然后将其反转并再次联接。这是一个低级的快速解决方案。

插图表格:

代码语言:javascript
运行
复制
const delay = (ms = 1000) => new Promise(res => setTimeout(res, ms))
const table = document.querySelector('tbody')

async function printLine(s1, s2, op){
  table.innerHTML += `<tr>
    <td>${s1}</td>
    <td>${s2||''}</td>
  </tr>`
}

async function steps(){
  printLine(123)
  await delay()
  
  printLine('12.3 →')
  await delay()
  
  printLine(12, 3)
  await delay()
  
  printLine('1.2', '3 &times; 10')
  await delay()
  
  printLine('1.2 →', 30)
  await delay()
  
  printLine(1, 32)
  await delay()
  
  printLine(1, '32 &times; 10')
  await delay()
  
  printLine('1 →', 320)
  await delay()
  
  printLine('', 321)
  await delay()
}

steps()
代码语言:javascript
运行
复制
table{ width: 200px; }
td {
  border: 1px dotted #999;
}
代码语言:javascript
运行
复制
<table>
  <thead>
    <tr>
      <th>Current</th>
      <th>Output</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

票数 32
EN

Stack Overflow用户

发布于 2016-06-27 20:20:42

假设@DominicTobias是正确的,你可以使用:

代码语言:javascript
运行
复制
console.log( 
    +prompt("Enter a value").split("").reverse().join("") 
)

票数 7
EN

Stack Overflow用户

发布于 2018-06-30 00:34:35

或者,作为一行程序( x包含要反转的整数):

代码语言:javascript
运行
复制
revX=x.toFixed(0).split('').reverse().join('')-0;

数字将被分成单独的数字,颠倒过来,然后重新组合成一个字符串。然后,-0再次将其转换为数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38053729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档