【问题标题】:How to prove if an array contains a string? [duplicate]如何证明数组是否包含字符串? [复制]
【发布时间】:2014-02-01 10:41:36
【问题描述】:

以下代码的作用是获取选定的流派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");
            }
    });
    } 
});

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

【问题讨论】:

  • data.indexOf(genre) > -1?

标签: javascript jquery arrays string


【解决方案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,则返回找到的 elem 的索引。
  2. 如果不是,则返回-1

【讨论】:

    【解决方案2】:

    您可以像这样使用Array.indexOf()$.inArray()

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

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2017-09-03
      • 2011-03-29
      • 2012-06-22
      • 2020-09-20
      • 2018-08-25
      相关资源
      最近更新 更多