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)
    一辈子说长不长,说短不短,努力做好两件事:第一件事爱生活,爱身边的人,爱自己;第二件事是好好学习,好好工作,实现自己的人生价值观,而不仅仅是为了赚钱
  • 相关阅读:
    JSDI——实现数据库连接池(JDBC改进)
    MD5加密算法(实际应用)
    Java Web 自动登录
    异步编程设计模式Demo
    异步编程设计模式Demo
    禁止程序启动2次
    C#线程同步的几种方法
    ASP.NET MVC的Action Filter
    带有返回值的intent
    android 属性动画
  • 原文地址:https://www.cnblogs.com/dcyd/p/15206449.html
Copyright © 2011-2022 走看看