我在骨干应用程序中使用了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'
});
任何人都可以建议我,这是更好的方法。
答案 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];
});