猿问

金额的人民币表示方法(每三位数逗号分割),更简单的实现方法?

遇到的一个笔试题:


var money = 1003450.89

var res = convert(money); // 1,003,450.89

我实现了一种方式,传统思维,感觉有点土,是否有更优雅的实现方法?下面是我的一种解法,期待更多答案。


function convert(money){

    money = money.toString();

    var integer = money.slice(0, money.indexOf(".")); // 1003450

    var decimal = money.slice(money.indexOf(".")); //89

    var integerArray = integer.split("");


    var res = "", m = 1;

    for(var i = integerArray.length - 1; i >= 0; i--){

        res += integerArray[i];

        if(m === 3) {

            m = 0;

            res += ",";

        }

        m++;

    }

    return res.split("").reverse().join("") + decimal;

}

console.log(convert(1003457678770.089));

// 1,003,457,678,770.089


犯罪嫌疑人X
浏览 2437回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答