如何证明数组是否包含字符串?

时间:2014-02-01 10:41:37

标签: javascript jquery arrays string

以下代码执行的操作是选择的类型genre,并检查它是否包含所有数组中的data之一。

示例:

genre = "comedy";
data = ["action", "comedy"]

我只想检查data是否包含"comedy"

$( "header section" ).selectable({
    selected: function() {
        var genre = $(".ui-selected").data("genre");
        console.log(genre);
        $("body > section div").each(function() {
            var data = $(this + ":contains('" + genre + "')").data("genre");
            if (data != genre) {
                $(this).css("display", "none");   
            } else {
                $(this).css("display", "block");
            }
    });
    } 
});

我尝试使用选择器"contains"进行此操作,但我认为它不适用于this

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$( "header section" ).selectable({
   selected: function() {

      var genre = $(".ui-selected").data("genre");
      var data = $("body > section div").map(function() {
                      return $(this).data("genre");
                  }).get(); // creates an array

      if($.inArray(genre, data) !== -1){//<--check if 'genre' exists in 'data'
          $(this).css("display", "block");
      }else{
          $(this).css("display", "none");
      }
   } 
});

关于$.inArray()

  1. 如果找到elem,则返回找到的元素的索引。
  2. 如果没有,那么它将返回-1

答案 1 :(得分:0)

您可以使用Array.indexOf()或使用$.inArray(),如下所示:

if( $.inArray(genre, data) > -1 ){
    alert('contains')
}