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)
    一辈子说长不长,说短不短,努力做好两件事:第一件事爱生活,爱身边的人,爱自己;第二件事是好好学习,好好工作,实现自己的人生价值观,而不仅仅是为了赚钱
  • 相关阅读:
    C++学习9 this指针详解
    福建省第八届 Triangles
    UVA 11584 Partitioning by Palindromes
    POJ 2752 Seek the Name, Seek the Fame
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    HDU 2988 Dark roads(kruskal模板题)
    HDU 1385 Minimum Transport Cost
    HDU 2112 HDU Today
    HDU 1548 A strange lift(最短路&&bfs)
  • 原文地址:https://www.cnblogs.com/dcyd/p/15206449.html
Copyright © 2011-2022 走看看