以前看到一道面試題,要求使用js寫千分位,當時面試時有點懵逼,可是後來參考網上的寫法與本身的思考,寫出了千分位。javascript
如下是經過網上的代碼,本人進行了進一步優化後的代碼,僅供參考。html
相比較與網上的方法,個人方法實現了能對小數也進行處理的功能,不會出現若是數字是小數,分割千分位就是出錯的問題。java
首先在開始的時候對數字作處理,使用split方法將轉化爲string類型的字符串在「.」位處分割開,而後裝進數組中面試
而後將前半部分(整數部分)反轉過來數組
使用循環判斷長度,三位長度就增長一個逗號。優化
再將其轉化爲數字並在此反轉spa
這時候要判斷以前的數是否爲整數,若是不是整數,就將arr【1】(小數部分)加在後面便可。code
在控制檯打印出最後的成果。htm
固然,不能忘記要有返回值,因此return是必須的。blog
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>千分位</title> </head> <body> </body> <script type="text/javascript"> function parseNum(number){ var arr = String(number).split("."); //定義一個數組,將要分割的數組轉爲字符串並判斷時候爲整數,小數位使用split在小數點處分割開 var list = arr[0].split('').reverse(); //定義list來裝分割出的整數部分,並轉化爲數組,使用reverse方法將其反轉 for(var i = 0; i < list.length; i++){ //定義變量,判斷list的長度 if(i % 4 == 3){ //當長度爲三位時,使用splice方法增長逗號。splice(位置,0(增長),增長的東西) list.splice(i, 0, ','); } } list = list.reverse().join(''); // 將list在反轉過來並使用join的方法將其變爲數字 if(arr[1] !== undefined){ //當小數位不爲undefined值時(有小數) list = list + '.' + arr[1]; } return list; } console.log(parseNum(1234567890.111)); </script> </html>