zoukankan      html  css  js  c++  java
  • 解决代码中大量if/else

    在编写 JS 代码时,经常会遇到逻辑判断复杂的情况。一般情况下,可以用 if/else 或 switch 来实现多个条件判断,但会出现一个问题:随着逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿

      if (status == 1) {
        // 逻辑1
      } else if (status == 2) {
        // 逻辑2
      } else if (status == 3) {
        // 逻辑3
      } else if (status == 4) {
        // 逻辑4
      } else if (status == 5) {
        // 逻辑5
      } else {
        // 逻辑6
      }

    很简单的就想到了用switch重写一下

    switch (status) {
      case 1:
        // 逻辑1
        break
      case 2:
      case 3:
        // 逻辑3、2 两个相同的可以写一起
        break
      case 4:
        // 逻辑4
        break
      case 5:
       // 逻辑5
        break
      default:
        // 逻辑6
        break
    }

    这样判断多了的时候看着也揪心,推荐以下Map更好的方法

      const actions = new Map([ // Map键可以是任何类型的值
        [1, fn1], // 为1时执行fn1函数
        [2, fn2],
        [3, fn3],
        [4, fn4],
        [5, fn5],
        ['default', fn6],
      ])
    
      const onButtonClick = (status) => {
        let action = actions.get(status)
        action()
      }
    
      function fn1() {
        console.log(66666666)
      }
      // ............
    
      const sendLog = (status) => {
        console.log(status)
      }
    
      onButtonClick(1)
    一辈子说长不长,说短不短,努力做好两件事:第一件事爱生活,爱身边的人,爱自己;第二件事是好好学习,好好工作,实现自己的人生价值观,而不仅仅是为了赚钱
  • 相关阅读:
    MySQL Workbench的安全更新模式
    IEnumerable<T>和IQueryable<T>区分
    Google 网站打不开
    使用 MVVMLight 命令绑定(转)
    使用 MVVMLight 绑定数据(转)
    安装/使用 MVVMLight(转)
    ?? 运算符(C# 参考)
    REST风格URL
    node+mysql 数据库连接池
    理解mysql执行多表联合查询
  • 原文地址:https://www.cnblogs.com/dcyd/p/15206449.html
Copyright © 2011-2022 走看看