0

有没有一种方法可以在不遍历所有元素的情况下使用 jquery 在数组中查找子字符串?

我有一个数组

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

如果不遍历所有元素,我可以弹出具有“ird”子字符串的元素吗?

4

3 回答 3

1

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

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。

但是,您将无法将元素从数组中“弹出”,为此您必须获取它的索引,为此,您必须遍历数组。

于 2013-05-16T20:21:14.947 回答
0

基本上,没有。

但是,如果您担心遍历整个列表,您可以使用 for 循环,一旦找到匹配项,您就可以退出该循环。

于 2013-05-16T20:23:40.567 回答
0

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

无论哪种方式,如果它是一大堆数据,请不要发送给客户端。实施一项服务,该服务将进行计算、检索并将结果发回给您。

在服务器端(或者如果你真的很想在客户端实现),如果在遍历数组(或选择数据库?)时性能很差,你最好的选择是类似Trie 的数据结构(它是实现自动完成等场景的子字符串搜索的最常见方法)。

于 2013-05-16T20:54:58.873 回答