车把文件大小计算

时间:2014-06-08 04:47:18

标签: handlebars.js

我在骨干应用程序中使用了Handlebar模板。

在我的应用程序的某些部分,我以字节为单位获取文件的大小。我希望在前端显示,但不是以字节为单位,而是以Byes,KB,MB,GB显示,具体取决于文件的大小。

我可以使用if else块和KB,MB,GB的字节值轻松完成。 e.g

HandleBars.registerHelper('filesize', function(bytes) {
        if(bytes < 1024)
        return bytes+'Bytes'
        else if(bytes >= 1024 && bytes < 1048576)
        return (bytes/1024) + 'KB'
    });

任何人都可以建议我,这是更好的方法。

1 个答案:

答案 0 :(得分:-1)

是的,你可以使用Math.log&amp; Javascript的Math.pow函数。这将最大限度地减少功能。

HandleBars.registerHelper('filesize', function(bytes) {
        var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
        if (bytes == 0) return '0 Bytes';
        var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
        return (bytes / Math.pow(1024, i)).toFixed(2) + ' ' + sizes[i];
    });