具体需求:现在需要判断一个变量是否在某个区间,从而做相应逻辑。但是需要判断的情况太多了,不大于2、不大于3但是大于、...除了ifelse还有什么办法可以实现吗例如:如果需要判断10次,就需要写10个ifelse判断//switchcase没法判断(a)=>{if(a
2 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
我的处理方式,供参考: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))
慕虎7371278
TA贡献1802条经验 获得超4个赞
其实你这里已经是a<=2的else了,就可以直接写a<=3了。。。(a)=>{if(a<=2)//xxxelseif(a<=3)//xxxelseif(a<=4)//xxxelse//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(...)returnaif(...)returnbreturnc甚至是三元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'
添加回答
举报
0/150
提交
取消