ファイルサイズ(バイト)をKB、MB…に変換する関数
function formatSize(byte) { const base = 1024; const unit_list = ['B', 'KB', 'MB', 'GB']; let res = ''; $(unit_list).each(function(exp, unit){ byte_unit = Math.pow(base, exp); if (byte < byte_unit * base) { res = Math.round(byte / byte_unit) + unit; return false; } }); return res; }
コール例
formatSize(1024); // "1KB"
ロジックはまあ特に難しいこともなく、
1024より小さいときはそのまま返す(なんか計算してるけどbyte_unitは1になので実質そのまま)、
1024^2より小さいときは1024^1で割る、
1024^3より小さいときは1024^2で割る…という調子。
TBにも対応するとか逆にGBはいらないとかあればunit_listに手を加えるだけでOK。
KBやMBに変換するときに小数点第何位まで出したいとかあれば要改造。