dor*_*emi 7 javascript algorithm search data-structures
说我有一个对象:
var names = ["john", "jane", "al", "mary", "zane" ... 1000+ Names]
Run Code Online (Sandbox Code Playgroud)
我想创建一个自动建议来搜索这些名称.
这样做最有效的方法是什么?我读过创建trie或三元数据结构是最好的,但我不确定如何在js中实现这些.
有什么想法吗?
特里是一个很好的解决方案.您的数据集看起来像这样:
{"j":
{"a":
["jacob", "jane", ..],
{"o":
["john", "joesph", ..],
..
};
Run Code Online (Sandbox Code Playgroud)
您可以逐个字符地索引尽可能多的级别(因此最里面的数组可能有20-30个条目.)然后对存储在最内层的数组进行简单搜索.
您可以通过循环遍历您的名称集合来生成此项,然后检查特定索引条目是否存在.如果是这样,请向下走一层,检查下一个字符是否存在等,直到达到最深层.然后插入到数组中,或者如果没有数组则启动新数组.如果在添加新名称时不存在字符级别,则创建它.然后,您希望缓存最终结果,而不是在每个请求上重新生成它.