【发布时间】:2014-11-20 15:10:11
【问题描述】:
我是 javascript 新手,刚刚写了以下内容,但是我使用的工具说执行时间太长。我检查了一些较旧的帖子,发现了类似的问题,但条件并不完全相同。有什么办法可以缩短这段代码,让计算机不会认为它需要太多时间来执行?也许只需缩短代码就可以解决问题。
if ((test.something("WhereTo").indexOf("LCUB")!= -1) || (test.something("WhereTo").indexOf("LMDV")!= -1) || (test.something("WhereTo").indexOf("LMUS")!= -1) || (test.something("WhereTo").indexOf("LDOM")!= -1) || (test.something("WhereTo").indexOf("LMEX")!= -1) || (test.something("WhereTo").indexOf("LMDV")!= -1) || (test.something("WhereTo").indexOf("LBRB")!= -1) || (test.something("WhereTo").indexOf("LKEN")!= -1) || (test.something("WhereTo").indexOf("LTHA")!= -1) || (test.something("WhereTo").indexOf("LJAM")!= -1) || (test.something("WhereTo").indexOf("LABW")!= -1))
{
return true;
}
else
{return false;}
【问题讨论】:
-
这可能取决于
test.something("WhereTo")的作用。如果这是一个复杂的操作,可能值得执行一次,将返回值存储在一个变量中,然后对变量执行所有indexOf操作。 -
我已投票为重复,但请特别查看此答案以获得可能会喜欢你的东西:stackoverflow.com/a/11820643/1470607
-
将字符串 args 放入数组中的
indexOf。使用下划线或 lodash 之类的东西来查看这些元素是否满足条件。大约 1-4 行取决于样式,并且更易于维护。或者使用正则表达式,因为您只是在寻找包含。 -
@albanx ... 差别不大。
标签: javascript if-statement conditional-statements