js 根据字节输出文件大小,转换成Kb,MG,GB,T等形式

js 根据字节输出文件大小,转换成Kb,MG,GB,T等形式

以下是 JavaScript 中根据字节输出文件大小,并转换成 KB、MB、GB、TB 等形式的代码和注释:

/**
 * 根据字节数获取文件大小,并转换成 KB、MB、GB、TB 等形式
 * @param {number} bytes - 文件的字节数
 * @returns {string} - 文件大小的字符串表示形式
 */
function formatFileSize(bytes) {
  const units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
  let size = bytes;
  let unitIndex = 0;

  while (size >= 1024 && unitIndex < units.length - 1) {
    size /= 1024;
    unitIndex++;
  }

  // 保留两位小数,四舍五入
  size = Math.round(size * 100) / 100;

  return `${size} ${units[unitIndex]}`;
}

上面的代码中,我们定义了一个 formatFileSize 函数,它接收一个字节数的参数,并返回对应的文件大小字符串。在函数中,我们首先定义了一个 units 数组,用于保存不同大小的文件的单位,包括 Bytes、KB、MB、GB、TB 等。然后,我们将传入的字节数保存到 size 变量中,并将 unitIndex 初始化为 0。

接下来,我们使用一个 while 循环,判断 size 是否大于等于 1024,并且 unitIndex 是否小于 units 数组的长度减 1。如果是,则将 size 除以 1024,unitIndex 加 1,进入下一轮循环。这个循环的作用是将 size 转换成不同的单位。

最后,我们将 size 保留两位小数,并四舍五入,然后使用模板字符串将 size 和 units[unitIndex] 拼接起来,形成最终的文件大小字符串,返回给调用者。

以下是示例代码,用于演示如何使用 formatFileSize 函数:

const fileSize = formatFileSize(123456789); // "117.74 MB"
console.log(fileSize);

在上面的示例中,我们调用了 formatFileSize 函数,并传入 123456789 字节作为参数。函数将 123456789 字节转换成了 117.74 MB,保存到 fileSize 变量中,并输出到控制台。

你可能感兴趣的:(javascript,前端,开发语言)