js-返回文件大小

返回文件大小这里采用根据已知文件size换算的方式实现:

export function getFileSize(size) {
  function bytesToSize(bytes) {
    if (bytes === 0) return '0 B'
    let k = 1024,
      sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
      i = Math.floor(Math.log(bytes) / Math.log(k))
      // 先以 e 来分别计算 bytes 与 k 分别对 e 的指数是多少
      // 再将两个指数相除即可得到bytes相对于k的一个指数倍数
      // 再利用floor向下取整,所得到的即是所应该取的sizes的下标,即sizes[i]
    return (bytes / Math.pow(k, i)).toPrecision(4) + ' ' + sizes[i]
    // 传入参数大小/对应k的i次方即可得相应数,然后用toPercision限定显示为数最多四位
    // 后面拼接sizes[i]找到的单位即可
  }
  return bytesToSize(parseInt(size))
}

实际使用效果如下:

let num1 = 453242342
let num2 = 123243421312312
let num3 = 87233423453452
console.log("num1",getFileSize(num1))		//num1 432 MB
console.log("num2",getFileSize(num2))		//num2 112 TB
console.log("num3",getFileSize(num3))		//num3 79.3 TB

如果有更漂亮的写法欢迎来讨论,让我们一起有条不紊的持续进步。
喜欢的话不妨点个小小的赞与关注,您的赞与关注将是我源源不断的前进动力。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值