简化多重if else(判断时长)

闲来无事看到同事的代码有点冗余,就来改造一下~

  • 改造前:
    在这里插入图片描述

  • 改造中:

 const obj = {
   1: '1小时内结束',
   18: '2小时内-18小时内结束',
   24: '1天内结束',
   120: '2天内-5天内结束',
   168: '1周内结束',
   672: '2周内-4周内结束',
   720: '一个月内内结束',
   7920: '2个月-11个月内结束',
   8760: '一年内'
 }

 function formatCompare(time, obj) {
   if (!time && time !== 0) return ''
   const arr = Object.keys(obj)
   let idx = -1
   for (let i = 0; i < arr.length; i++) {
     if (Number(arr[i]) > time) {
       idx = i
       break
     }
   }
   return idx === -1 ? '超过一年' : obj[arr[idx]]
 }
 console.log(formatCompare('9999', obj)) // '超过一年'
 console.log(formatCompare(12, obj)) // '2小时内-18小时内结束'
 console.log(formatCompare(0, obj)) // '1小时内结束'
 console.log(formatCompare(undefined, obj)) // ''
 console.log(formatCompare(null, obj)) // ''
  • 改造后:
    在这里插入图片描述
    PERFECT!
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值