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)