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

Tri*_*iFu 9 javascript arrays string search

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

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

所以说我有一个像这样的字符串数组:
var descArr = {"flipping burgers", "pumping gas", "delivering mail"};

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

我怎样才能快速搜索其中包含10000多条描述的字符串数组?显然我不能对描述数组进行排序,因为它们是描述,因此二进制搜索已经完成.而且,由于用户可以通过搜索"p""pi"或字母的任意组合,这部分搜索意味着我不能使用关联数组(即searchDescArray["pumping gas"]),以加速搜索.

任何人的想法?

sod*_*sod 20

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

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

通过/g全局切换,您可以获得所有匹配.确保用户不搜索字符串分隔符.

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

  • "11 flipping burgers""12 pumping gas""13 delivering mail"
  • 正则表达式: "(\d+) ([^"]*ping[^"]*)"

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