javascript - 什么是最好的 javascript 自动建议搜索算法

标签 javascript algorithm search data-structures

假设我有一个对象:

var names = ["john", "jane", "al", "mary", "zane" ... 1000+ Names]

我想创建一个自动建议来搜索这些名称。

最有效的方法是什么?我读过创建一个 trie 或三元数据结构是最好的,但我不确定如何在 js 中实现这些。

有什么想法吗?

最佳答案

trie 将是一个很好的解决方案。您的数据集看起来像这样:

{"j":
    {"a":
        ["jacob", "jane", ..],
    {"o":
        ["john", "joesph", ..],
    ..
};

您将逐个字符地索引尽可能深的层次(以便最内层的数组可能有 20-30 个条目。)然后对存储在最内层的数组进行简单搜索。

您可以通过遍历名称集合来生成它,然后检查特定索引条目是否存在。如果是,再往下一层,检查下一个字符是否存在等等,直到到达最深的一层。然后插入到数组中,如果没有则开始一个新数组。如果在添加新名称时 Angular 色级别不存在,则创建它。那么您可能希望缓存最终结果,而不是在每次请求时都重新生成它。

关于javascript - 什么是最好的 javascript 自动建议搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111852/

相关文章:

javascript - Jquery的change()函数

javascript - MVC3 javascript图像问题

javascript - leafletjs 如何获取事件弹出/标记的句柄

c# - (动态规划)如何通过 session 列表最大化房间利用率?

javascript - 数据表 - 如何将搜索输入移出表

java - Android SearchView - 更改光标颜色

javascript - 如何使用响应式设计使 div 的高度和宽度相同?

c# - 确定语句/文本的正面或负面程度的算法

java - 下载加速

perl - 如何确定两个字符串是否大部分相等(在 perl 中)?