t === 10 || t === 20 这种'与'操作符有简写吗?

有时候写判断一个值是否等于多个值,写的很麻烦
return t === 10 || t === 20 || t === 30
有简写吗?
----------补充----------
基本是新建数组然后查找,不过我目前是在vue的HTML中用,经常遇见这种情况

<p v-if="status === '0' || status === '2'"></p>

能简写嘛?

阅读 3.7k
7 个回答

let arr = [1, 2, 3, 4]
let t = 5
return arr.includes(t)

[10,20,30].indexOf(t)>-1

不推荐使用[].includes,兼容性差

方案一:

const assert = n => {
    switch (n) {
        case 10:
        case 20:
        case 30:
            return true;
        default:
            return false;
    }
};
console.log(assert(t));

方案二:

console.log(!!~[10, 20, 30].indexOf(t));

建个数组,用indexOf()
楼上includes也可以,es6的语法


不影响啊

  data() {
    return {
      res:[0,2,3,4,5]
    };
  },
<p v-if="res.includes(status)"></p>
((x,...y)=>y.some(e=>e===x))(t,1,2,3,4)
const arr = [
    // 状态1
    1,
    // 状态2
    2,
    // 状态3
    3
 ]
new RegExp(`^(${arr.join('|')})$`).test(status)
[1,2,3].includes(1) // true
[1,2,3].includes(6) // false
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题