千分位的寫法

以前看到一道面試題,要求使用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>
相關文章
相關標籤/搜索