如何优化多字符串包含判断的if语句以提升效率?
优化方案
当然有更高效且易维护的实现方式,以下是几种常用方案:
方案一:正则表达式匹配
用正则的字符集一次性判断目标字符是否存在,代码更简洁,执行效率也更高(尤其是判断项较多时):
if (/[abcdefg]/.test(currentPosition.id)) { // 你的逻辑代码 }
如果需要匹配大小写不敏感的字符,可以在正则后加i标志:/[abcdefg]/i.test(...)
方案二:数组结合some方法
把需要判断的字符存入数组,用some方法遍历检测,优势是可读性强、后续维护更方便(新增/删除字符只需修改数组):
const targetChars = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; if (targetChars.some(char => currentPosition.id.includes(char))) { // 你的逻辑代码 }
原代码的问题
原写法存在重复代码冗余,每次新增/删除判断字符都需要修改if条件结构,维护成本高;且多次调用includes会带来不必要的重复字符串扫描,当判断项增多时,性能差异会更明显。
内容的提问来源于stack exchange,提问作者AlexTWO
相关产品推荐
相关产品推荐

