【发布时间】:2011-04-27 21:55:50
【问题描述】:
如果我有一个包含 10,000 多个元素的大型 javascript 字符串数组, 如何快速搜索?
现在我有一个存储工作描述的 javascript 字符串数组, 我允许用户在输入框中动态过滤返回的列表。
假设我有一个这样的字符串数组:var descArr = {"flipping burgers", "pumping gas", "delivering mail"};
用户想搜索:"p"
如何快速搜索包含 10000 多个描述的字符串数组?
显然,我无法对描述数组进行排序,因为它们是描述,所以二进制搜索不可用。而且由于用户可以通过"p" 或"pi" 或任何字母组合进行搜索,因此这种部分搜索意味着我不能使用关联数组(即searchDescArray["pumping gas"])
加快搜索速度。
有什么想法吗?
【问题讨论】:
-
您想在字符串的开头匹配搜索还是在字符串内部进行搜索?如果用户搜索“p”,是否应该在结果中包含“flipping burgers”?
-
descArr 不是数组而是文字对象。
-
@guffa,是的,如果用户搜索“p”,它应该在结果中包含“翻转汉堡”。我发现现在最大的减速是实际搜索。目前我有一个循环遍历数组并进行比较: if (descArray[i].search("P")) > -1){ //return result}
-
使用正则表达式 - 示例:jsfiddle.net/RnabN/4(30k 字符串,最多 100 个结果)
标签: javascript arrays string search