一、問題描述:
給出一個整數,將這個整數中每位上的數字進行反轉。
示例:輸入:123,輸出321;輸入-123,輸出-321;輸入120,輸出-21
二、問題分析與解決:
需要將給出的整數反轉,注意示例中給出的負數和末尾是0的情況。問題比較簡單直接上JS代碼如下:
JS代碼:
//以下代碼采用ES6的箭頭函數寫法 const reverseNum = (num) => { if (num >= 0) { const numStr = String(num);//將數字轉成字符串,方便轉成數組 return Number(numStr.split('').reverse().join(''));//詳見注釋1 } else { const numStr = String(num);//將數字轉成字符串,方便轉成數組 return -numStr.slice(1).split('').reverse().join('');//詳見注釋2 } }; //運行以上代碼: reverseNum(1230);//321 reverseNum(-123);//-321 reverseNum(-1230);//-321 /* 注釋1(以輸入數字1230為例): numStr.split('')//將字符‘123’轉成數組['1','2','3','0'] .reverse()//反轉數組,得到['0','3','2','1'] .join('')//數組轉成字符串'0321' Number()//最后加將反轉后的字符串轉為數字得到321 */ /* 注釋2: 與注釋1中不同的是先截取字符串numStr的第1位到最后一位,不截取負號,最后反轉完后直接用-將反轉后的字符串轉為負數,得到-321 +、-單獨使用表示將其后面的元素轉成數字類型,相當於Number()方法,只不過'-'會將后面的元素轉化成負數。注意:-0得到-0,+0得到0,不是數字返回NaN如:+undefined //NaN */
注意:Number('0123')會自動舍棄首位的0,Number方法和+、-操作默認將參數轉為10進制的數字。
如有疑問歡迎留言討論,謝謝!
(本文為原創博客,嚴禁非法抄襲或復制,轉載請注明出處:https://www.cnblogs.com/xiao-pengyou/)