使用jquery在数组中查找子字符串

使用jquery在数组中查找子字符串,jquery,arrays,Jquery,Arrays,有没有一种方法可以使用jquery在数组中查找子字符串,而无需遍历所有元素 我有一个数组 arr = ["tree","bird"]; 在不遍历所有元素的情况下,是否可以弹出具有“ird”子字符串的元素?如果您只想知道子字符串是否出现,可以执行以下操作: var arr = ["tree", "bird"]; arr.join("|").match(/tree/); //The "|" is to make sure that the substring is not formed by 2

有没有一种方法可以使用jquery在数组中查找子字符串,而无需遍历所有元素

我有一个数组

arr = ["tree","bird"];

在不遍历所有元素的情况下,是否可以弹出具有“ird”子字符串的元素?

如果您只想知道子字符串是否出现,可以执行以下操作:

var arr = ["tree", "bird"];
arr.join("|").match(/tree/); //The "|" is to make sure that the substring is not formed by 2 different words
顺便说一句,这是纯Javascript,不需要JQuery

但是,您无法从数组中“弹出”元素,因此您必须获取它的索引,并且为此,您必须在数组中进行迭代。

基本上没有


但是,如果您担心遍历整个列表,您可以使用for循环,在找到匹配项后立即中断。

如果问题是性能,因为它是一个包含1930年数据的大数组,除非您执行类似于自动完成的操作(每次用户键入字符时都需要重新搜索),您最大的问题是数据传输,而不是客户端处理

无论哪种方式,如果数据量很大,不要发送给客户机。实施一项服务,执行计算、检索并将结果发送回您


在服务器端(或者如果您非常热衷于在客户端实现),如果在遍历数组(或者选择数据库?)时性能不佳,那么最好的选择是a(这是实现自动完成等场景的子字符串搜索的最常用方法).

为什么不想遍历元素呢?我不知道如果不进行迭代,你怎么可能做到……不是为了子字符串搜索,不是。如果你想搜索整个元素,你可以使用
indexOf()
方法。(呃,也就是说,如果我们说的是纯JS而不是jQuery)一个迭代场景后面元素的选项:
var matched=$.grep(arr,function(elem){return elem.indexOf('ird')>-1;});
@user2146515字符串操作比数组操作慢得多。但是,您不能用子字符串弹出元素。