在 JS 中将每秒位数 (BPS) 转换为可读的大小格式
Posted
技术标签:
【中文标题】在 JS 中将每秒位数 (BPS) 转换为可读的大小格式【英文标题】:Convert bits per second (BPS) to a readable size format in JS 【发布时间】:2017-10-11 11:23:04 【问题描述】:我有以下图表,显示随时间变化的每秒位数:
我想重新格式化大小格式,使其看起来更具可读性。为此,我必须确定要显示的正确尺寸格式。
我的数据数组如下所示:
[2919556699, 2912227197, 3416038936, 2874881968, 2698255215, 2397888873, 2420727173, 2828319752,…]
我的问题 是否有任何通常用于决定可读尺寸格式的逻辑?如果不是,您建议实施什么来决定是否以 Kbps / Mbps / Gbps / Tbps 显示数据?
【问题讨论】:
【参考方案1】:我不知道是否有一种通用的方法可以做到这一点,但是,您可以使用此功能将您的数据转换为更具可读性的状态。并归功于此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];
;
codesandbox
【讨论】:
应该是 1000 而不是 1024。我们在这里转换的是速度而不是文件大小。以上是关于在 JS 中将每秒位数 (BPS) 转换为可读的大小格式的主要内容,如果未能解决你的问题,请参考以下文章