美化打印字节数

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,我们将探索如何使用 JavaScript 将以字节为单位的数字以人类可读的格式进行美化打印。我们将学习如何通过使用单位数组字典,将给定的字节数转换为 KB、MB、GB、TB、PB、EB、ZB 和 YB。借助 Number.prototype.toPrecision() 方法,我们将把数字截断为一定数量的位数,并构建一个美化后的字符串来显示结果。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("`Conditional Statements`") javascript/BasicConceptsGroup -.-> javascript/array_methods("`Array Methods`") subgraph Lab Skills javascript/variables -.-> lab-28554{{"`美化打印字节数`"}} javascript/data_types -.-> lab-28554{{"`美化打印字节数`"}} javascript/arith_ops -.-> lab-28554{{"`美化打印字节数`"}} javascript/comp_ops -.-> lab-28554{{"`美化打印字节数`"}} javascript/cond_stmts -.-> lab-28554{{"`美化打印字节数`"}} javascript/array_methods -.-> lab-28554{{"`美化打印字节数`"}} end

将字节转换为人类可读的字符串

要将以字节为单位的数字转换为人类可读的字符串,请使用 prettyBytes() 函数。请注意以下几点:

  • 该函数使用一个单位数组字典,根据指数来访问这些单位。
  • 你可以使用第二个参数 precision 将数字截断为一定数量的位数。默认值为 3
  • 你可以使用第三个参数 addSpace 在数字和单位之间添加空格。默认值为 true
  • 该函数通过构建字符串来返回美化后的结果,同时会考虑提供的选项以及数字是否为负数。

以下是 prettyBytes() 函数的代码:

const prettyBytes = (num, precision = 3, addSpace = true) => {
  const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
  if (Math.abs(num) < 1) return num + (addSpace ? " " : "") + UNITS[0];
  const exponent = Math.min(
    Math.floor(Math.log10(num < 0 ? -num : num) / 3),
    UNITS.length - 1
  );
  const n = Number(
    ((num < 0 ? -num : num) / 1000 ** exponent).toPrecision(precision)
  );
  return (num < 0 ? "-" : "") + n + (addSpace ? " " : "") + UNITS[exponent];
};

以下是使用 prettyBytes() 函数的一些示例:

prettyBytes(1000); // '1 KB'
prettyBytes(-27145424323.5821, 5); // '-27.145 GB'
prettyBytes(123456789, 3, false); // '123MB'

总结

恭喜你!你已经完成了“美化打印字节数”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程