最近,查漏补缺的时候,突然想到了前年写过的js模糊查询算法,于是就看能不能再完善一下。
之前写的算法只支持简单维度的数据,不支持嵌套太深。如果数据嵌套一下就会出bug。
模糊查询的思路
参考传统c的二分递归算法,
循环遍历维度中,给二分法传递匹配的字符以及整个字符串,再利用返回的数组下标来确定是否匹配,遍历完成,输出数组。
代码
这个次的算法改进,是为了适应json格式的数据。有时候表格不只是横竖两个维度。包括表格内套树形结构等。
下面是代码实现
首先是核心算法:二分法
实现思路:每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半,递归找,即可
1 | const basicSearch = function (mainStr, str, offset) { |
其次是查询函数
1 | const multiQuery = function ({ |
使用函数并打印
1 | const models = [{ |