使用$ .inArray(“str”,arr)考虑包含该str的元素

时间:2017-06-03 03:48:17

标签: jquery

我有这个数组:var arr = ["hi","heya","hello"]我需要找到包含“嘿”的任何元素,因为该元素不一定是“嘿”,所以“heya”很重要。

所以我需要这样的东西:

var arr = ["hi","heya","hello"];
if($.inArray("hey",arr) != -1) alert("hey found!");

没有显示任何内容,但我需要它。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

在循环中,indexOf可以解决问题。

var arr = ["hi","heya","hello"];
var found = false;
$.each(arr, function(index, value){        
      if (value.indexOf("hey") !== -1){
            found = true;
            return false;
      }      
});
if(found){
alert('hey found');
}
else{
alert('hey not found');
}

Working Fiddle here

答案 1 :(得分:1)

您可以为此构造正则表达式,并使用grep函数将测试应用于数组的每个元素

var arr = ["hi","heya","hello"];
var search = new RegExp("hey" , "i");
var array = $.grep(arr, function (value) {
    return search.test(value);
});

/* Array Contains Elements Like */
if(array.length==0) console.log("Not Found");
else{ 
    console.log("found!");
    console.log(array);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:0)

您可以通过lopping搜索单词。以下代码可以帮助您。

$(document).ready(function () {     
    var arr = ["hi","heya","hello"];
    $.each(arr, function( index, value ) {
        var data = value.search('hey');
        if (data === 0) {
            alert(value);
        }
    });
});