如何以最好(最聪明)的方式编写这个JS函数?

Ani*_*mde 0 javascript

我想编写以字节为单位的文件大小(7762432)并以用户可读格式(7,762,432字节)返回值的函数.

function(fileSizeBytes){
    // mind blowing logic :)
    return userReadable;
}
Run Code Online (Sandbox Code Playgroud)

我是用旧式的字符串拆分方式完成的,但我只是好奇是否存在可以让我头晕目眩的方式让我尖叫着"天哪,它也可以这样做!!"

Rob*_*ond 6

function addCommas(value) {
    var regex = /^(\d+)(\d{3}[\.]?.*)$/;
    while (regex.exec(value)) {
        value= RegExp.$1
                ? RegExp.$1 + ',' + RegExp.$2
                : RegExp.$2;
    }
    return value;
}
Run Code Online (Sandbox Code Playgroud)


gui*_*ido 6

一行功能:

function formatFileSizeBytes(size) {
    return size.replace(/(\d)(?=(\d{3})+$)/g, "$1,");
}
Run Code Online (Sandbox Code Playgroud)

一些测试:

for (var i = 0; i <= "123456789".split('').length; i++) {  
    alert(formatFileSizeBytes(a.slice(0,i).join(''))); 
}
Run Code Online (Sandbox Code Playgroud)