【菜鸟】js 判断不等于两个值问题

这种方式可以简写吗?感觉非常臃肿

if(a===1 || a===2}{}
阅读 10k
4 个回答

[1, 2].some(_ => _ === a) 这样?

updated
昨天似乎有人踩了这个答案,虽然我也不知道原因是什么。所以多说一些吧,对于楼主列举代码的条件判定逻辑,用逻辑或操作符就已经很好了,其实换作我上面说的这种写法,其实也就是换了种写法而已,类似的还可以用位操作符、正则等方式来模拟。

真正想要干掉 if-else 的话,需要从抽象层面解决问题,比如使用策略模式,然而对于简单的业务逻辑描述真的适合用大炮打蚊子吗?

这种问题,一般都是需要业务流程的优化吧

如果有很多条件情况的话,倒不妨用switch

switch(a){
    case 1:
    case 2:
        dosomething1();
        break;
    case 3:
        dosomething2();
        break;
    default:
        doelse();
        break;
}

[1, 2].includes(a)

试试这个

if(/^(1|2)$/.test(a)) {...}
if(/^[12]$/.test(a)) {...}
if([1,2].includes(a)) {...}

RegExp.test() 传入参数若是数字也没关系,跟字符串一样的运算

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题