回答
如果你想作一個簡單的逆轉:
var x = 123;
var y = x.toString();
var z = y.split("").reverse().join("");
var aa = Number(z);
document.write(aa);
這不是反轉位;這是扭轉十進制數字的順序,這是完全不同的。這裏有一種方法(最有效的,我相信):
var x = 123;
var y = 0;
for(; x; x = Math.floor(x/10)) {
y *= 10;
y += x % 10;
}
x = y;
如果你真的要反轉位,它是:
x = ~x;
作爲一個功能:
function reverse(n) {
for(var r = 0; n; n = Math.floor(n/10)) {
r *= 10;
r += n % 10;
}
return r;
}
通常當這個問題出現時(幾乎總是在採訪中),他們希望你以這種方式回答而不將數字轉換爲字符串 – 2014-01-20 22:59:34
這對小數不起作用。 – 2015-03-04 01:41:02
@QuentinEngles:人們大多需要用整數來做到這一點。一些小數部分可能會更好地完成(甚至可能更好),作爲一個字符串。 – Ryan 2015-03-04 17:56:46
這裏是另一個方式...
var reversed = num.toString().split('').reverse().join('');
如果您想再次將它作爲Number
,請使用parseInt(reversed, 10)
。請注意,領先的0
s在十進制數中並不重要,如果轉換爲Number
,則會丟失它們。
下面是在JavaScript可逆陣函數處理整數或字符串:
function reverse(array)
{
var left = null;
var right = null;
var length = array.length;
for (left = 0, right = length - 1; left < right; left += 1, right -= 1)
{
var temporary = array[left];
array[left] = array[right];
array[right] = temporary;
}
return array;
}
function toDigitsArrayFromInteger(integer, isReverse)
{
var digits = [];
if (integer > 0)
{
var floor = window.Math.floor;
while (integer > 0)
{
digits.push(floor(integer % 10));
integer = floor(integer/10);
}
// Array is populated in reverse order. Un-reverse it to make it normal.
if (!isReverse)
{
digits = reverse(digits);
}
}
else if (integer < 0)
{
digits = toDigitsArrayFromInteger(-integer, isReverse);
}
else if (integer === 0)
{
digits.push(0);
}
return digits;
}
function toDigitsArrayFromString(string, isReverse)
{
var digits = [];
string += ""; // Coerce to string.
var i = null;
var length = string.length;
for (i = 0; i < length; i += 1)
{
var integer = parseInt(string.charAt(i), 10);
if (isFinite(integer))
{
digits.push(integer);
}
}
if (isReverse)
{
digits = reverse(digits);
}
return digits;
}
一旦你的數字作爲一個數組,您可以輕鬆地反轉數組以獲取從左側或右側開始的數字。
字符串函數更通用,因爲它可以找到字符串中的任何數字,而整數函數僅限於整數。
基準: http://jsperf.com/todigitsarray
兩個功能之間的基準測試表明在Firefox 10和鉻12,字符串函數比整數函數快30%至60%。在Opera 12中,整數函數略快10%左右。
代碼塊下面應該做的伎倆
<script type = "text/javascript">
var input;
input=window.prompt ("Please enter a number to be reversed.");
x=input.length;
while(x > 0)
{
x=x-1;
document.write(input[x]);
}
</script>
<html>
<script>
function reverseInt(n){
var r=0;
while(n!=0){
r*=10;
r+=n%10;
n=Math.floor(n/10);
}
return r;
}
</script>
</html>
你可以添加一些解釋嗎? – Undo 2014-02-19 03:52:46
也使用此功能
function myfunction(a){
var x=a.toString();
var y= x.split("");
var z=y.reverse();
var result=z.join("");
return result;
} myfunction的(123);
試試這個
var n = 352;
function loop(n, r){
if(!n) return r;
r = (r ? r * 10 : 0) + n % 10;
return loop(Math.floor(n/10), r);
}
console.log(loop(n));
簡單快捷的解決方案:讓我們假設你想扭轉一些4546.您將通過10通過各個部門的提醒,並把它添加到結果,直到數是> 0,同時通過10
var x = '';
var num = 4546;
while(num>0){
x = x + (num%10);
num = parseInt(num/10);
}
console.log(x);
OK,通過將它更新num變量如何如何使用和下面的一行功能鏈接在JavaScript這些流行的招數......
const reverseNum = num => +("" + ~~num.split("").reverse().join(""));
,並調用它像這樣:
reverseNum(123); //321
reverseNum(423.09); //324
reverseNum(23305.1); //50332
reverseNum(89112); //21198
reverseNum(568434.2389); //434865
- 1. 反向整數位
- 2. 反向32位整數
- 3. 在javascript中反向按位移動
- 4. 小數位數的小數位數
- 5. javascript中的3個小數位
- 6. 無符號整數的反向位
- 7. 的Javascript輪數爲2位小數
- 8. 反向Logistic函數/反向Sigmoid函數
- 9. 使用javascript計算小數位數前後的位數
- 10. Python中的小數位數
- 11. VB.NET中的小數位數
- 12. 在Javascript中舍入到2位小數
- 13. Javascript反向日期,反向?
- 14. TimePicker反向24小時數據
- 15. Javascript數學顯示小數位
- 16. JavaScript接受多少個小數位數?
- 17. Javascript - 格式數爲3位小數
- 18. 小數位數超出範圍 - Javascript
- 19. 使用Javascript獲取小數位數
- 20. Javascript regExp接受小數點後12位數和小數點後兩位數
- 21. Javascript反向引用其次是數字
- 22. javascript中的反向行
- 23. 的Javascript - 顯示總在2位小數
- 24. 的Javascript保留小數點後一位
- 25. JavaScript中的輸入反向反斜槓:負反向
- 26. 將mysql中的小數位數排序爲小數點後2位與小數點後的位數
- 27. 只有位數在Javascript中具有唯一小數點的TextField
- 28. 如何限制JavaScript輸出中的小數位數?
- 29. 反向JSON的JavaScript
- 30. 如何防止Coldfusion向小數位變量添加小數?
你的意思是反轉位或反向的字符串?反轉位表示將1更改爲0,反之亦然(以二進制值形式)。 – 2011-06-15 00:49:54
您的意思是「反轉小數位」,而不是「反轉位」...... – 2011-06-15 00:50:32
您對「位」的含義是什麼,顯然您並不是指位。 – 2011-06-15 00:51:08