有没有办法在不迭代所有元素的情况下使用jquery在数组中查找子字符串?
我有一个数组
arr = ["tree","bird"];
没有遍历所有元素,我可以弹出具有“ird”子串的元素吗?
答案 0 :(得分: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。
你将无法从阵列中“弹出”元素,因为你必须得到它的索引,为此,你必须遍历数组。
答案 1 :(得分:0)
基本上没有。
但是如果你担心在整个列表中进行迭代,你可以使用for循环,一旦找到匹配就会中断。
答案 2 :(得分:0)
如果问题是性能 ,因为它是一个包含1930年以来数据的大型数组,除非您正在执行类似自动完成的操作(每次都需要重新搜索)用户输入一个char),你最大的问题是数据传输而不是客户端处理。
无论哪种方式,如果它是一大堆数据,不会发送到客户端。实现一项服务,进行计算,检索并将结果发回给您。
在服务器端(或者如果你真的很痴迷于在客户端实现),如果在迭代数组(或选择数据库?)时性能很差,那么最好的选择是Trie-like data structure(它是实现子字符串搜索的最常用方法,例如auto-complete)。