Javascript 检查字符串数组是否包含子字符串

Javascript 检查字符串数组是否包含子字符串,javascript,arrays,Javascript,Arrays,我有这样一个数组: array = ["123", "456", "#123"] 我想找到包含子字符串的元素。我尝试了array.includes和array.indexOf,但没有成功 如何检查此数组中的任何字符串是否包含子字符串?,因为includes将与每个数组元素进行比较 让我们尝试使用或,如果您想找到是否要精确获取元素 var数组=[123456123]; var el=array.finda=>a.includes; c

我有这样一个数组:

array = ["123", "456", "#123"]
我想找到包含子字符串的元素。我尝试了array.includes和array.indexOf,但没有成功


如何检查此数组中的任何字符串是否包含子字符串?

,因为includes将与每个数组元素进行比较

让我们尝试使用或,如果您想找到是否要精确获取元素

var数组=[123456123]; var el=array.finda=>a.includes; console.logel您可以使用过滤器

    var array = ["123", "456", "#123"];

    console.log(array.filter(function(item){
        var finder = '#';
        return eval('/'+finder+'/').test(item);
    }));
通过传递一个函数,您可以过滤并返回与您要查找的内容匹配的元素


在本例中,我使用了eval,因为获取字符串时使用RegExp,但可以使用==运算符进行获取。

这里似乎有多个问题,因为标题和帖子正文不同。您想知道数组是否有元素,还是要获取元素本身?如果要获取元素,请选择第一个引用、最后一个引用或所有引用的数组

这篇文章的目的是为未来的访问者提供一个资源,他们可能不一定想要找到,也就是从左边返回第一个元素,如顶部答案所示。为了详细说明这个答案,有一个gotcha,在布尔上下文中不加区别地用find替换一些-返回的元素可能是错误的,如中所示

如果[5,6,0].finde=>e<3{//fix:使用'some'而不是'find'` console.log您可能希望它运行; } 否则{ console.log,但它实际上运行+ 因为找到的元素恰好是错误的;
}试试array.somex=>x.includes我觉得它更像array.finditem=>item.includeswhy eval?{}{{}{}使用新的RegExp而不是eval,或者更好的方法是使用includes。如果子字符串恰好有特殊的regex字符,则regex方法会中断,因此这个答案在两个级别上都非常中断。some方法对于这种情况非常有用