我有下图显示随时间变化的每秒位数:
我想重新格式化大小格式,使其看起来更具可读性。为此,我必须决定要显示的正确尺寸格式。
我的数据数组如下所示:
[2919556699, 2912227197, 3416038936, 2874881968, 2698255215, 2397888873, 2420727173, 2828319752,…]
我的问题 是否有任何通常用于决定可读大小格式的逻辑?如果不是,您建议实现什么以决定是否以 Kbps/Mbps/Gbps/Tbps 显示数据?
最佳答案
我不知道是否有通用的方法来执行此操作,但是您可以使用此功能将数据转换为更易读的状态。并归功于此 question .
alert(getReadableFileSizeString(150000000));
function getReadableFileSizeString(fileSizeInBytes) {
var i = -1;
var byteUnits = [' kbps', ' Mbps', ' Gbps', ' Tbps', 'Pbps', 'Ebps', 'Zbps', 'Ybps'];
do {
fileSizeInBytes = fileSizeInBytes / 1024;
i++;
} while (fileSizeInBytes > 1024);
return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i];
};
更现代的 es6 版本:
const getReadableFileSizeString = (fileSizeInBytes) => {
let i = -1;
const byteUnits = [
" kbps",
" Mbps",
" Gbps",
" Tbps",
"Pbps",
"Ebps",
"Zbps",
"Ybps"
];
do {
fileSizeInBytes = fileSizeInBytes / 1024;
i++;
} while (fileSizeInBytes > 1024);
return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i];
};
关于javascript - 将每秒位数 (BPS) 转换为 JS 中的可读大小格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46686993/