如何根据子字符串匹配过滤数组中的项目?

时间:2016-06-03 11:05:19

标签: javascript jquery

我在jQuery中搜索数组,

var arr = ["mango","banana","jackfriut","apple","google"];
var removeItem = "google";   //works fine
var removeItem = "ogle";   //fails

arr = $.grep(arr, function(value) {
  return value != removeItem;
});
alert(arr)

当我通过"google"时,它的工作正常。 请告诉我,当我仅传递"ogle"等内容时,它应该可以正常工作。 它就像通配符一样。

2 个答案:

答案 0 :(得分:2)

您可以根据条件使用indexOf

 var arr = ["mango","banana","jackfriut","apple","google"];
 var removeItem = "ogle";   //fails

 arr = $.grep(arr, function(value) {
    if(value.indexOf(removeItem) == -1)
       return value;
 });
 alert(arr)

JSFiddle

希望有所帮助:)

答案 1 :(得分:0)

您可以使用内置$.inArray功能的jQUery。

var arr = ["mango","banana","jackfriut","apple","google"];

function inArray() {
    if($.inArray(value, arrayName) !== -1) {
        alert("Value is in array");
    } else {
        alert("Value is not in array");
    }
}

然后,您可以调用函数传递您要查找的值:

inArray("google");

当然,您选择在函数中返回的逻辑取决于您,但这是检查数组中值的最佳方法。