바이트를 선택에 따라 십진 바이트 혹은 이진 바이트로 바꾸게 하는 코드를 소개합니다.
const transFormatBytes = (
bytes: number,
digits: number = 0,
isBinary: boolean = true
) => {
const unit = isBinary ? 1024 : 1000;
const yota = isBinary ? Math.pow(2, 80) : Math.pow(1000, 8);
if (bytes >= yota) {
return `${(bytes / yota).toFixed(digits)} ${unit ? "YiB" : "YB"}`;
}
const format = isBinary
? ["Bytes", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB"]
: ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"];
const formatBytes = (
value: number,
divisor: number,
digits: number,
[currentLabel, ...otherLabels]: string[]
): string => {
if (value < divisor) {
return `${value.toFixed(digits)} ${currentLabel}`;
}
return formatBytes(value / divisor, divisor, digits, otherLabels);
};
return formatBytes(bytes, unit, digits, format);
};
사용하기
transFormatBytes(17179869184, 2)
>>> 16.00 GiB
'Javascript' 카테고리의 다른 글
[Browser API] fetch API를 알아보자! (0) | 2020.01.05 |
---|---|
[WebAPI] window.localStorage 부시기! (5) | 2019.09.29 |
[Babel] 사용기(1) (0) | 2019.06.26 |
파일(Image) 용량을 확인하는 방법_v1 (0) | 2019.06.05 |
배열의 중복값 제거 (0) | 2019.04.25 |