===参数的多个实例的效率?

时间:2016-12-01 14:04:57

标签: javascript jquery

是否有更有效的方式来显示它:

$(this).text() === "something" || $(this).text() === "somethingelse"

就像这样:

$(this).text() === ("something" || "something else")

清晰度:我并不是说它应该与我显示的一模一样。我想知道是否有更简单的方法来做我的建议。所以,我不是在重复同样的命令。我只是想比较某些文本,例如。

2 个答案:

答案 0 :(得分:4)

您可以创建选项数组并检查您的值是否在该数组中。

["something", "something else"].indexOf($(this).text()) != -1

使用ES7,您可以使用includes()

["something", "something else"].includes($(this).text())

答案 1 :(得分:1)

有几种方法可以达到预期效果

方法1 - 使用indexOf()

var myList = ["something", "somethingElse"];
if (myList.indexOf($(this).text()) !== -1) {
    //ok
} else {
    //nok
}

方法2 - 使用jQuery.inArray

//This yields to false
$.inArray( 5 + 5, [ "8", "9", "10", 10 + "" ] );
//This yields to true
$.inArray( 5 + 5, [ "8", "9", "10", 10 ] );

发生这种情况的原因是因为JavaScript将0视为松散等于false

方法3 - 使用includes()

var a = [1, 2, 3];
a.includes(2); // true 
a.includes(4); // false

方法4 - switches

switch (expression) {
  case value1:
    //Statements executed when the result of expression matches value1
    [break;]
  case value2:
    //Statements executed when the result of expression matches value2
    [break;]
    default:
    //Statements executed when none of the values match the value of the expression
    [break;]
}