闲来无事看到同事的代码有点冗余,就来改造一下~
-
改造前:
-
改造中:
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!