javascript - 将每秒位数 (BPS) 转换为 JS 中的可读大小格式

标签 javascript charts presentation

我有下图显示随时间变化的每秒位数:

graph

我想重新格式化大小格式,使其看起来更具可读性。为此,我必须决定要显示的正确尺寸格式。

我的数据数组如下所示:

[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];
  };

codesandbox

关于javascript - 将每秒位数 (BPS) 转换为 JS 中的可读大小格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46686993/

相关文章:

javascript - 是否可以使用 D3 在圆环图的弧形中插入图标​​?

css - 使用样式表更改 RStudio 演示文稿的字体大小

r - xaringan - 我可以为整个演示设置倒计时吗?

javascript - 箭头函数 : destructuring arguments and grabbing them as a whole at the same time

javascript - 使用 jquery 使用 .on() 将事件附加到页面上的动态插入按钮

javascript - 单击表会导致多个 ajax 操作使用 jQuery 运行

javascript - jQuery Sticky Div 并滚动到仅在一页上工作的顶级插件

d3.js - D3 Chart version 4 Normalized Stacked Bar Chart 从垂直到水平

c# - 赢得表格制图

html - 是否应该避免直接描述附加样式的 'floatleft' 这样的 css 类名?