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

如何简化JavaScript中的OR条件判断?

简洁优雅的多值条件判断写法

你提到的state === ('su' || 'ja' || 'fa')这种写法没法实现你想要的效果哦——因为逻辑或||会返回第一个“真值”,这里'su'本身就是真值,所以这个表达式等价于state === 'su',完全忽略了后面的'ja'和'fa'。

给你几种更简洁优雅的替代方案:

  • 最推荐:使用数组的includes方法
    这是现代JS里最直观简洁的写法,可读性拉满:

    ['su', 'ja', 'fa'].includes(state)
    

    includes会直接返回布尔值,判断state是否在数组中,完美替代多个||的判断。

  • 兼容旧环境:用indexOf
    如果你的代码需要兼容IE这类不支持includes的旧环境,可以用indexOf:

    ['su', 'ja', 'fa'].indexOf(state) !== -1
    

    当state在数组中时indexOf会返回它的索引(非-1),反之返回-1,以此来判断是否匹配。

  • 高频场景优化:用Set
    如果这个判断需要频繁执行,用Set的查找性能会比数组更好:

    // 先定义一次,重复使用
    const validStates = new Set(['su', 'ja', 'fa']);
    // 判断时
    validStates.has(state)
    

    Set的has方法是O(1)时间复杂度,数组的includes是O(n),高频调用时差异会很明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:49:54