具体需求:
现在需要判断一个变量是否在某个区间,从而做相应逻辑。但是需要判断的情况太多了,不大于2、不大于3但是大于、...除了if else还有什么办法可以实现吗
例如:如果需要判断10次,就需要写10个if else判断
// switch case没法判断
(a) => {
if(a <= 2) {
// xxx
} else if ( a <= 3) {
// xxx
} else if ( a <= 4) {
// xxx
} else if ....
}
感谢各位大佬提供的思路,综合出几种比较适合这种情况的方法:
- 使用
switch case
, 通过条件给每个状态命名,例如a <= 2
则命名为<2
,然后在case '<2'里处理. 但代码难读懂 - 如采纳答案所示,使用
||
做判断,看得比较轻松,但是因为最后但值限定为number
,而ts报错result有可能为false,因此加了一个any类型 - 感谢@xianshenglu 提供的思路:职责链模式。非常实用的一个思路,但因为具体情况就只需要判断8种,而且未来不会再变更,所以就暂时不使用职责链模式,相信以后肯定也会用上。
我的处理方式,供参考: