1、問題描述:
給出一個整數,將這個整數中每位上的數字進行反轉。
示例:輸入:123,輸出321;輸入-123,輸出-321;輸入120,輸出-21數組
2、問題分析與解決:函數
須要將給出的整數反轉,注意示例中給出的負數和末尾是0的狀況。問題比較簡單直接上JS代碼以下:spa
JS代碼:code
//如下代碼採用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進制的數字。blog
若有疑問歡迎留言討論,謝謝!字符串
(本文爲原創博客,嚴禁非法抄襲或複製,轉載請註明出處:https://www.cnblogs.com/xiao-pengyou/)get