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