11

我目前有这样的 if 语句:

if (x==a||x==b||x==c||x==d||x==e) {
   alert('Hello World!')
};

我怎样才能测试是否x等于数组中的任何值,例如[a,b,c,d,e]

谢谢!

4

4 回答 4

25

您可以使用

if([a,b,c,d,e].includes(x)) {
    // ...
}

或者

if([a,b,c,d,e].indexOf(x) !== -1) {
    // ...
}
于 2013-09-03T09:39:35.160 回答
3

您可以使用以下代码:

<script>
    var arr = [ 4, "Pete", 8, "John" ];
    var $spans = $("span");
    $spans.eq(0).text(jQuery.inArray("John", arr));
    $spans.eq(1).text(jQuery.inArray(4, arr));
    $spans.eq(2).text(jQuery.inArray("Karl", arr));
    $spans.eq(3).text(jQuery.inArray("Pete", arr, 2));
</script>

阅读此链接以获取有关它的更多信息

希望这对您有所帮助。

于 2013-09-03T09:55:32.853 回答
1

查看 jquery 函数 inArray(): http ://api.jquery.com/jQuery.inArray/

于 2013-09-03T09:45:48.460 回答
1

试试这个辅助函数:

function in_array(needle,haystack) {
    if( haystack.indexOf) return haystack.indexOf(needle) > -1;
    for( var i=0, l=haystack.length, i<l; i++) if(haystack[i] == needle) return true;
    return false;
}

如果可用,这将使用内置的indexOf,否则它会手动迭代。

于 2013-09-03T09:46:01.303 回答