原创
实现一个优雅的单位转换函数
- 做项目的时候碰到后端返回一个数字,单位是Kb,页面需要展示成, KB,MB,GB等单位
实现一个单位转换函数
常规实现
JavaScript
123456789101112131415
function formatSizeUnits(kb) {
var result = '';
if (kb < 1024) {
result = kb + ' KB';
} else if (kb < 1024 * 1024) {
result = (kb / 1024).toFixed(2) + ' MB';
} else if (kb < 1024 * 1024 * 1024) {
result = (kb / 1024 / 1024).toFixed(2) + ' GB';
} else {
result = (kb / 1024 / 1024 / 1024).toFixed(2) + ' TB';
}
return result;
}
这个实现方式比较简单,就是根据单位进行判断,然后进行转换。
高阶实现
JavaScript
1234567891011
function formatSizeUnits(kb) {
const units = ['KB', 'MB', 'GB', 'TB', 'PB'];
let unitIndex = 0;
while (kb >= 1024 && unitIndex < units.length - 1) {
kb /= 1024;
unitIndex++;
}
return `${kb.toFixed(2)} ${units[unitIndex]}`;
}
这个实现方式比较复杂,首先定义了一个数组units,然后定义了一个变量unitIndex,用于记录当前的单位索引。然后使用一个循环,判断kb是否大于等于1024,如果大于等于1024,则将kb除以1024,并将unitIndex加1,直到kb小于等于1024为止。最后返回kb.toFixed(2)和units[unitIndex]的组合。
怎么样,这个方法是不是很优雅呢?
期待你的捷足先登





