【前端】通过对象实现代码优化、if简化、可维护性增强

0 说明

代码中if太多了怎么办
通过对象来实现优化是常用的方法,这里做个整理


1 场景

1.1 一层逻辑处理

// 优化前
if(inValue === "a"){
  function1()
}
if(inValue === "b"){
  function2()
}
// 优化后
const funcs = {
  "a": function1,
  "b": function2
}

funcs[inValue]()

1.2 更高优先级处理

// 优化前
if(inValue === '330000'){
  if(inValue === '330100'){
    return console.log('杭州')
  }
  if(inValue === '330200'){
    return console.log('宁波')
  }
  return console.log('浙江')
}
// 优化后
const funcs = {
  "11": null,
  "33": queryZhejiang,
  "330100": queryHangzhou,
  "330200": queryNingbo,
}

const provinceCode = resultCode.slice(0,2)
const cityCode = resultCode.slice(2)
const method = funcs[provinceCode] || funcs[cityCode]

method()

1.3 细分条件处理

// 优化前
if(errCode === "307001" || errCode === "307003" || errCode === "307009"){
  return failFunc(errCode)
}
else{
  if(pageType === "a"){
    if(detailType === "1"){
      return successAFunc1(num)
    }
    if(detailType === "2"){
      return successAFunc2(num)
    }
  }
  if(pageType === "b"){
    return successBFunc(num)
  }
}
// 优化后
const funcs = {
  "307001": failFunc,
  "307003": failFunc,
  "307009": failFunc,
  "a-1": successAFunc1,
  "a-2": successAFunc2,
  "b": successBFunc
}

if(errCode in funcs){
  return funcs[errCode](errCode)
}

const key = `${pageType}-${detailType}`;
if(key in funcs){
  return funcs[key](num)
}


2 总结

通过对象来实现场景判断,可以大大提高代码的可读性、可维护性,减少大量的if判断,并能实现场景判断与功能代码两者的分离

另外,很感谢chatgpt的指导哈哈哈,基本把需要整理的代码结构写个demo发给chatgpt,就能给你不同的优化方案(当然有时可能会有错误需要自己甄别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值