我正在使用以下逻辑检查特定字符串是否与其他字符串匹配
if (searchTxt == "All" || searchTxt == "WORD1" || searchTxt == 'WORD2' || searchTxt == 'WORD3' || searchTxt == 'WORD4' || searchTxt == 'WORD5') {
}
以上代码运行正常,但显示警告
减少表达式中使用的条件运算符(5)的数量 (最多允许3个)
。
如何解决此警告
答案 0 :(得分:-1)
在此示例中,使用switch statement会更好。如果要对多个术语(例如“ WORD1”和“ WORD2”)执行相同的操作,请消除该中断并将您要执行的代码放在最后的匹配项中。
switch(searchTxt){
case "All":
// do something
case "WORD1":
// do something
case "WORD2":
// do something
case "WORD3":
// this switch case will do something for
// "WORD1", "WORD2", "WORD3", "All"
break;
case "WORD4":
// do something
break;
case "WORD5":
// do something
break;
default:
// do something if no match
}
答案 1 :(得分:-2)
您的代码目前不需要重复。
如何将可接受的选项放入数组中,然后使用动态REGEX进行测试:
let allowed = ['foo', 'bar', 'etc'];
if (new RegExp('/^('+allowed.join('|')+')$/').test(searchTxt)) { alert('match'); }