我是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;}
答案 0 :(得分:2)
怎么样;
var haystack = ["LCUB", "LMDV", "LMUS", .....];
var needle = test.something("WhereTo");
var result = needleInHaystack(needle, haystack);
function needleInHaystack(needle, haystack) {
for (var i = 0; i < haystack.length; i++)
if (needle.indexOf(haystack[i]) != -1)
return true;
return false;
}
var haystack = ["LCUB", "LMDV", "LMUS"];
var result = needleInHaystack("xxx LMDV xxx", haystack);
document.write(result);
var result = needleInHaystack("xxx ZZZZ xxx", haystack);
document.write("<br>" + result);
function needleInHaystack(needle, haystack) {
for (var i = 0; i < haystack.length; i++)
if (needle.indexOf(haystack[i]) != -1)
return true;
return false;
}
答案 1 :(得分:0)
如果test.something("WhereTo")
返回String,则可以执行以下操作
var yourString = test.something("WhereTo");
if(yourString.search(/LCUB|LMDV|LMUS|.../) != -1) return true;
return false;
答案 2 :(得分:0)
var foo = test.something('WhereTo');
var bar = ['LCUB', 'LMDV', 'LMUS'];
return bar.some(function(x){
return foo.indexOf(x) !== -1;
});