前端 模糊 搜索 经验总结
前端交易搜索总结
1. 精确搜索
优点简单快捷 一行js 代码搞定 缺点不支持 拼音搜索 模糊搜索
let res = [{
name:123},{
name:我的名字1}].filter(array => array.name.match(我));
2. 使用 damerau-levenshtein 模块 距离算法搜索
需要先安装 npm 模块 damerau-levenshtein 优点 支持模拟搜索 支持拼音搜索 缺点 搜索不准确 (致命伤) 基本用法
3. 使用 pinyin-match 搜索模块
经过了无数次的尝试我发现无法提高 damerau-levenshtein 模块搜索精确度(弃用 ) 感谢老天 让我发现了pinyin-match 一个跟加适合前端搜索的模块 优点 1.支持拼音搜索 2.支持模糊搜索 3.搜索结果精确高 缺点 暂时还没发现
基本用法
//PinyinMatch 返回 数组 || false import PinyinMatch from pinyin-match; let [0,1] = PinyinMatch.match(你好吗123, ni)
前端模糊搜索 最终解决方案:
import PinyinMatch from pinyin-match;
export const filterList = (list, str) => {
return [...list].filter((item) => PinyinMatch.match(item.name, str));
};
