Jquery 如果字符串被其他字符包围,如何使用inArray()在数组元素中查找字符串

Jquery 如果字符串被其他字符包围,如何使用inArray()在数组元素中查找字符串,jquery,arrays,Jquery,Arrays,如何使用inArray()搜索数组中的值并返回true,即使该值被其他字符包围。这是我的代码(med是我的数组,它是med[1-10]): 如果数组元素为“xanax”或“alprazolam”,则返回true。但如果用户输入“xanax xr”或“阿普唑仑er”,它将返回false。是否有任何方法可以在该特定数组元素的任意点搜索字符串“xanax”或“alprazolam”,即使该特定数组元素中存在其他字符,并在这种情况下返回true?如果要查找部分匹配,则不能使用$.inArray()。它就

如何使用
inArray()
搜索数组中的值并返回
true
,即使该值被其他字符包围。这是我的代码(
med
是我的数组,它是
med[1-10]
):


如果数组元素为“xanax”或“alprazolam”,则返回
true
。但如果用户输入“xanax xr”或“阿普唑仑er”,它将返回
false
。是否有任何方法可以在该特定数组元素的任意点搜索字符串“xanax”或“alprazolam”,即使该特定数组元素中存在其他字符,并在这种情况下返回
true

如果要查找部分匹配,则不能使用
$.inArray()
。它就是不能那样工作。相反,您可以自己迭代数组,并根据需要对数组的每个元素进行任何类型的匹配

$.inArray()
没有什么神奇之处。这只是在数组中查找精确值的快捷方式,但如果该快捷方式不是您想要的,则只需执行您自己的迭代和比较类型

例如:

function findPartialStrInArray(array, target) {
    for (var i = 0; i < array.length; i++) {
        var item = array[i];
        // if this array element is a string and contains the target string
        if (typeof item === "string" && item.indexOf(target) !== -1) {
            return i;
        }
    }
    return -1;
}

var alprazolamlog = findPartialStrInArray(med, 'alprazolam') > -1;
var xanaxlog = findPartialStrInArray(med, 'xanax') > -1;
函数findPartialString数组(数组,目标){
对于(var i=0;i-1;
var xanaxlog=findPartialStrInArray(med,'xanax')>-1;
试试这个

var search_pattern = /llo/;
var data = ['foo', 'bar', 'hello world', 'im in an array'];    
$.each(data, function(i, item) {
    if(item.match(search_pattern))
        console.log(item) 
});

你也可以在得到一个肯定的结果后中断foreach,或者用
returni返回数组中的位置

迭代是指使用for循环并对每个元素进行比较吗?@user3898186-要在数组上进行迭代,可以使用
for
循环或数组上的
.forEach()
方法。请看我在答案中添加的示例。谢谢!看起来很棒,今天下班后我会去试一试
var search_pattern = /llo/;
var data = ['foo', 'bar', 'hello world', 'im in an array'];    
$.each(data, function(i, item) {
    if(item.match(search_pattern))
        console.log(item) 
});