javascript - 通过大型 js 字符串数组优化搜索?

标签 javascript arrays string search

如果我有一个包含超过 10,000 个元素的大型 javascript 字符串数组, 如何快速搜索它?

现在我有一个 javascript 字符串数组,用于存储工作描述, 并且我允许用户在输入框输入时动态过滤返回的列表。

假设我有一个像这样的字符串数组:
var descArr = {“翻转汉堡”、“抽气”、“投递邮件”};

并且用户想要搜索:"p"

如何快速搜索包含 10000 多个描述的字符串数组? 显然我无法对描述数组进行排序,因为它们是描述,所以二分搜索就结束了。由于用户可以通过 "p""pi" 或字母的任意组合进行搜索,这种部分搜索意味着我不能使用关联数组(即 searchDescArray["抽气"] ) 以加快搜索速度。

有什么想法吗?

最佳答案

由于实际浏览器中的正则表达式引擎在速度方面变得疯狂,那么这样做怎么样?而不是数组传递一个巨大的字符串并用标识符分隔单词。 示例:

  • String "flipping burgers""pumping gas""delivery mail"
  • 正则表达式:"([^"]*ping[^"]*)"

使用全局开关 /g 可以得到所有的匹配项。确保用户不会搜索您的字符串分隔符。

你甚至可以在字符串中添加一个 id,比如:

  • String “11 翻转汉堡”“12 抽气”“13 送邮件”
  • 正则表达式:"(\d+) ([^"]*ping[^"]*)"

  • 示例:http://jsfiddle.net/RnabN/4/ (30000 个字符串,结果限制为 100 个)

关于javascript - 通过大型 js 字符串数组优化搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3975871/

相关文章:

javascript - 在 iframe 中使用 jquery 设置下拉值

javascript - python 解析 .js 页面

java - 在 Main 方法中使用返回的数组

javascript - 使用原型(prototype)时如何引用父对象?

string - Scala中如何将字符串拆分为字符

javascript - 为什么 Facebook JavaScript SDK 请求所有这些文件?

Javascript JSON.parse 或直接访问

C# - 交换最后一个,第一个 MI 最快的方法

javascript - 防止 if 语句中的错误 "is undefined"

python : I'm unable to fix TypeError: 'str' object is not callable