如何在javascript中缩短以下if语句

时间:2014-11-20 15:10:12

标签: javascript if-statement conditional-statements

我是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;}

3 个答案:

答案 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;
});