想在js中实现快速搜索(万级数据,类似mysql中的where name=xxx),如何实现?

tpwonline
  • 316

js中存放的数据格式类似:

[
  ["id":1,"name":"李明","brief":"简介111"],
  ["id":2,"name":"李红","brief":"简介222"],
  ["id":3,"name":"张三","brief":"简介333"]
]

数据量大概几万条
现在有需求要能实时快速根据name快速查找到那一条的值,类似mysql中的where name=xxx,对速度要求高,所以不能调接口,调接口就慢了,

用什么查找算法实现这个需求响应速度最快?

回复
阅读 464
5 个回答
✓ 已被采纳

思路可以是一样的嘛,你维护一个name的索引..
比如一个这样的结构
let index={"李明":[0,1]}; //"name":[下标数组]
那么你的查询就变成了
index['李明'],然后按下标去找就好了

如果是全匹配, 最简单的, 遍历一次将name作为key, value为你的数据数组存放起来, 匹配就可以了. 如果不是全匹配支持模糊的话, 就只能自己写, 根据name的值生成一个树, 再根据你的查询条件去寻找

项目中用一个json文件记录上万个数据,就不用调用接口查数据库了,
这个json文件可以写个脚本自动生成,数据库有变化的时候删除再生成

chenghao94
  • 2
新手上路,请多包涵

数组的filter方法

你知道吗?

宣传栏