挑战用最简单的JS代码格式化文件大小
原创
2023-3-10
16:30
编辑于
2023-3-10
17:01
input 上传附件大小单位为B,一般需要将附件大小格式化为MB,GB展示,更加人性化。
循环版
function formatFileSize(bytes) {
let units = ['B', 'KB', 'MB', 'GB', 'TB']
while (bytes >= 1024 && units.length > 1) {
bytes /= 1024
units.shift()
}
return Number(bytes.toFixed(2)) + units[0]
}
formatFileSize(1) // B
formatFileSize(1234567890) // 1.15GB
formatFileSize(12345678901234567890) // 11228329.55TB
非循环版
function formatFileSize(bytes) {
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
return Number((bytes / Math.pow(1024, i)).toFixed(2)) + units[i];
}
formatFileSize(1) // B
formatFileSize(1234567890) // 1.15GB
formatFileSize(12345678901234567890) // 11228329.55TB
注意:实际运用还要考虑下输入值的有效性。
转载请注明出处。本文地址:
https://www.qinshenxue.com/article/probably-the-simplest-js-format-file-size-function.html
关注我的公众号