项目中有很多内存单位需要转化的问题出现,每次让后台转化感觉还是很不方便的,所以我就写了一个函数,将内存单位转化,现在写在博客里与各位分享一下。
先上代码:
const unitArr=["B","KB","MB","GB","TB"];
//num:传过来的数量;unit:传过来的单位
function unitConversion(num,unit){
//没传单位默认为B
if(!unit){
unit="B"
}
let unitNumber=0;
//找到当前单位的键值
for(let i=0;i<unitArr.length;i++){
if(unitArr[i]==unit){
unitNumber=i;
}
}
//将值降到1024以下
for(let i=0;i<unitArr.length;i++){
if(num>=1024){
num=num/1024;
unitNumber++;
}
}
return num.toFixed(2)+unitArr[unitNumber]
}
这里的想法就是把当前的值转化成1-1024中的值,比如一个10240MB就看的很难受了,测试那边也有这种将单位转化成GB的要求,所以这就是我写这个函数的目的,不管碰到什么单位,只要你传入当前值和当前单位,就能把转化成最合适的单位。
现在在控制台测试下代码的正确性:
1.当前为B的单位(默认):
2.当前KB想转化成GB:
3.当前为MB想转化成GB:
还是可以完成普通的单位转化的基本功能的,最后希望能对各位有所帮助的!