1. 程式人生 > 其它 >解決程式碼中大量if/else

解決程式碼中大量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)
一輩子說長不長,說短不短,努力做好兩件事:第一件事愛生活,愛身邊的人,愛自己;第二件事是好好學習,好好工作,實現自己的人生價值觀,而不僅僅是為了賺錢