亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問超過5種判斷情況有什么方式可以替代if else嗎求老司機指點!

請問超過5種判斷情況有什么方式可以替代if else嗎求老司機指點!

繁星coding 2019-11-03 11:28:48
具體需求:現在需要判斷一個變量是否在某個區間,從而做相應邏輯。但是需要判斷的情況太多了,不大于2、不大于3但是大于、...除了ifelse還有什么辦法可以實現嗎例如:如果需要判斷10次,就需要寫10個ifelse判斷//switchcase沒法判斷(a)=>{if(a
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

我的處理方式,供參考:
functioncheckRange(total){
constresult=(total<=2&&'A')||(total<=3&&'B')||(total<=4&&'C')||'D'
returnresult
}
console.log(checkRange(2))
console.log(checkRange(3))
console.log(checkRange(4))
console.log(checkRange(5))
                            
查看完整回答
反對 回復 2019-11-03
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

其實你這里已經是a<=2的else了,就可以直接寫a<=3了。。。
(a)=>{
if(a<=2)//xxx
elseif(a<=3)//xxx
elseif(a<=4)//xxx
else//xxx
}
或者是給每個狀態命名:
conststatus=a<=2
?'<2'
:a<=3
?'2-3'
:a<=4
?'3-4'
:'>4'
switch(status){
case'<2':
case'2-3':
case'3-4':
case'>4':
}
題主說命名狀態難以讀懂,我不是很服:
conststatus=a<=2
?'a小于2'
:a<=3
?'2到3'
:a<=4
?'3到4'
:'a大于4'
switch(status){
case'a小于2':
case'2到3':
case'3到4':
case'a大于4':
}
還有就是ifelsereturn的例子:
if(...){
returna
}elseif(...){
returnb
}else{
returnc
}
可以寫作
if(...)returna
if(...)returnb
returnc
甚至是三元
return(...)
?a
:(...)
?b
:c
這時候判斷有多層的話,用三元不知道比ifelse可讀性好到哪里去了:
function(a,b){
if(a<2){
if(b%1<.5)return'case1'
elsereturn'case2'
}elseif(a<3){
return'case3'
}else{
return'case4'
}
}
constfn=(a,b)=>a<2
?b%1<.5
?'case1'
:'case2'
:a<3
?'case3'
:'case4'
                            
查看完整回答
反對 回復 2019-11-03
  • 2 回答
  • 0 關注
  • 1223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號