You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更简洁地判断变量是否等于"THIS"或"THAT"?

更简洁的多值判断写法推荐

嘿,这个问题问到点子上了!很多开发者都想把这种重复的多值相等判断写得更清爽,我来给你分享几种实用的简洁方案,每种都有适用场景:

  • ES6+ 最直观方案:数组 includes() 方法
    这是现在最常用的简洁写法,代码一眼就能看懂,扩展性还强——以后要加新的判断值,直接往数组里塞就行:

    if (["THIS", "THAT"].includes(sampleVariable)) {
      // 你的业务逻辑代码
    }
    

    includes() 会直接返回布尔值,完美替代原来的或运算判断,非常适合大多数场景。

  • 兼容旧环境方案:数组 indexOf() 方法
    如果你的项目需要兼容ES6之前的老环境,可以用这个替代写法,原理是检查变量在数组中的索引是否存在:

    if (["THIS", "THAT"].indexOf(sampleVariable) !== -1) {
      // 你的业务逻辑代码
    }
    

    注意要判断索引不等于 -1(因为找不到时indexOf会返回-1),不过现在现代浏览器基本都支持ES6了,除非有特殊需求,不然优先选includes()。

  • 高性能方案:对象属性判断
    如果你需要判断的值特别多(比如十几个甚至更多),用对象字面量的方式性能更好(查找是O(1)时间复杂度):

    if ({ THIS: true, THAT: true }[sampleVariable]) {
      // 你的业务逻辑代码
    }
    

    原理是利用对象属性的存在性——如果sampleVariable是对象的键,就会返回对应的true,否则返回undefined(布尔判断里是false)。

  • 分支友好方案:switch 语句
    如果以后可能要针对不同的值写不同的逻辑,switch写法虽然不算最紧凑,但扩展性更强:

    switch(sampleVariable) {
      case "THIS":
      case "THAT":
        // 匹配到两个值时执行的逻辑
        break;
      default:
        // 其他情况的逻辑
    }
    

最后提一句:你原来的写法if(sampleVariable == "THIS" || sampleVariable == "THAT")其实完全没问题,可读性非常高,团队协作时反而更容易被所有人理解。要不要换简洁写法,主要看你的项目环境和实际需求,平衡简洁性和可读性才是关键~

内容的提问来源于stack exchange,提问作者TheKingElessar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:24:03