Javascript 如何逻辑:最常用的连续输入

Javascript 如何逻辑:最常用的连续输入,javascript,jquery,arrays,performance,google-apps-script,Javascript,Jquery,Arrays,Performance,Google Apps Script,我有一个带有autocomplete JQuery和数千个选项6000+的输入框,我想要的是在插入一个选项后,输入框自动“建议”最常用的选项 前 第一次使用,输入 番茄橙番茄苹果番茄橙 现在第二次使用,当我键入西红柿时,我想要一个函数来检索Orange,它在西红柿之后键入了两次,而在apple之后只键入了一次 我想有一个对象,它把所有的水果作为键,把数组作为每个水果的属性,数组的索引是它被使用的次数或位置,所以当输入西红柿时,我会调用西红柿的属性,索引是长度,哪种水果是仅次于西红柿的最常用水果

我有一个带有autocomplete JQuery和数千个选项6000+的输入框,我想要的是在插入一个选项后,输入框自动“建议”最常用的选项

第一次使用,输入

番茄橙番茄苹果番茄橙

现在第二次使用,当我键入西红柿时,我想要一个函数来检索Orange,它在西红柿之后键入了两次,而在apple之后只键入了一次

我想有一个对象,它把所有的水果作为键,把数组作为每个水果的属性,数组的索引是它被使用的次数或位置,所以当输入西红柿时,我会调用西红柿的属性,索引是长度,哪种水果是仅次于西红柿的最常用水果

使用上述输入,对象将是:

{Tomato=[Apple,Orange],Orange=[Tomate],Apple=[Tomato]}
这是好的做法吗?有更好的方法吗

我对索引也有疑问,我应该如何保存和更新它

拥有镜像对象是一种良好的实践吗?它将保存每个水果的索引是一个特定的水果,因此我不必对数组中的循环进行处理,它可以在每个水果的数组中增长到数百个索引


至于保存,我会有一个全局数组,在输入水果时将其推入,每次有新条目时,我都会在上一个条目的键上增加当前输入水果的索引。

对于17000个条目,工作应该在服务器端完成。你的服务器技术是什么?@TrueBlueAussie Oops,17000在另一个平台上,这个平台使用6000个条目。我使用GAS-googleapps脚本,HTMLOutput,所以服务器技术是Google-hehe。忘了添加标记。超过100的任何内容都应该在服务器端处理,以免页面膨胀。@TrueBlueAussie您的意思是我应该向服务器发送变量,然后返回下一个建议?使用GAS的服务器端在时间上成本太高且不可靠,每次调用可能需要毫秒到几秒钟的时间才能返回单个字符串。这不利于良好的响应。这是大型列表的标准自动完成行为。浏览器上的大列表肯定会降低浏览器性能。如果需要几秒钟的时间,您需要新的主机!:您可以一次性返回所有匹配项。单个请求,所有匹配结果+顶部使用最多的结果。