需求:經常在**中會有各種條件判斷,導致if/else
使用過多,不僅閱讀麻煩,對於新加的條件,還不好擴充套件,文中列舉了7中優化方案,可以根據實際**環境選用。文中並沒有列舉switch
,是因為switch
結構使用上與is/else
並無區別。
1、提前return
,可以將判斷層級拉平
let animal =
'cat'
if(animal !==
'person')if
(animal ===
'pig')}
let animal =
'cat'
if(animal ===
'person'
)return
if(animal ===
'cat')if
(animal ===
'pig'
)
2、使用邏輯運算子
let animal =
'cat'
if(animal ===
'cat'
)else
let animal =
'dog'
animal ===
'cat'
&& console.
log(
'貓')
animal ===
'dog'
&& console.
log(
'狗')
animal ===
'cat'
|| console.
log(
'其他動物'
)animal ===
'dog'
|| console.
log(
'其他動物'
)
3、使用三元運算子
let animal =
'cat'
if(animal ===
'cat'
)else
let animal =
'cat'
animal ===
'cat'
? console.
log(
'貓')
: console.
log(
'其他動物'
)
4、使用includes
let animal =
'cat'
if(animal ===
'cat'
|| animal ===
'dog'
|| animal ===
'pig'
)let animal =
'cat'
let arr =
['cat'
,'dog'
,'pig']if
(arr.
includes
(animal)
)
5、使用object
物件儲存,針對單個判斷條件比較方便,也可以字串拼接多個判斷條件,但是不推薦
let animal =
'cat'
if(animal ===
'cat'
)else
if(animal ===
'dog'
)else
if(animal ===
'pig'
)else
let animal =
'cat'
let animals =
console.
log(animals[animal]
)// 字串拼接多個判斷條件
let animal =
'cat'
let color =
'red'
let animals =
console.
log(animals[animal +
'_'+ color]
)
6、使用物件陣列,多個判斷條件
let animal =
'cat'
let color =
'white'
if(animal ===
'cat')if
(color ===
'white')}
else
if(animal ===
'dog')if
(color ===
'white')}
let animal =
'cat'
let color =
'white'
let animals =[,
,,]let _animal = animals.
filter
((item)
=> item.type === animal && item.color === color)
console.
log(_animal[0]
.name)
7、使用map
資料結構
let animal =
'cat'
let color =
'white'
if(animal ===
'cat')if
(color ===
'white')}
else
if(animal ===
'dog')if
(color ===
'white')}
let animal =
'cat'
let color =
'white'
let animals =
newmap([
[,'紅貓'],
[,'白貓'],
[,'紅狗'],
[,'白狗']]
)let _animal =
[...animals]
.filter((
[key, value]
)=> key.type === animal && key.color === color)
let[_key, _name]
= _animal[0]
console.
log(_name)
js利用策略模式優化if else迴圈
js程式中最常用的if else迴圈,如果分枝很多的的情況下難免使寫出的程式又臭又長,但是根據需求又必須將這些分支處理,此時稍有經驗的程式設計師可能會想到用switch case優化但是只是僅僅做到利於閱讀,最好的方法是用策略模式進行優化。例如 有五個物件 obj1 obj5 然後需要判斷每個物件的...
if,else結構的說明
如果要講if,else結構的話,首先先講最基本的結構也是最簡單的一種。它的結構就是if 在 中要描寫的就是條件了,書上一開始在括號中填寫的是最簡單的true 對 或fault 錯 在大括號中要寫你想要表達的 可能只用語言表達不好理解,我認為用實際例子來證明是最好的解釋。if 1 1 2 這樣就通俗易...
SAS巨集中 if else和if else的區別
sas巨集中 if else和if else的區別 data a set x do m 1 to 3 do q 1 to 5 if x q nan and m id and x q id m q then do id m q 1 put 有值 且id相等 id x q id m q 上面 是正常的i...