Javascript 如何使用Lodash java脚本库进行模糊搜索?

Javascript 如何使用Lodash java脚本库进行模糊搜索?,javascript,lodash,fuzzy-search,Javascript,Lodash,Fuzzy Search,我想使用查询字符串对对象数组进行模糊搜索。 搜索可以嵌套在搜索对象中,如以下示例所示 var数据=[ { “id”:“1”, “姓名”:“阿里”, “董事会”:“2055年10月29日”, “类型”:“主要”, “电子邮件”:b@v.com", “移动”:“0100000000”, “注释”:[“注释1”、“注释2”、“注释3”] }, { “id”:“2”, “姓名”:“领带”, “董事会”:“2055年10月29日”, “类型”:“主要”, “电子邮件”:b@v.net", “移动”:“0

我想使用查询字符串对对象数组进行模糊搜索。 搜索可以嵌套在搜索对象中,如以下示例所示

var数据=[
{
“id”:“1”,
“姓名”:“阿里”,
“董事会”:“2055年10月29日”,
“类型”:“主要”,
“电子邮件”:b@v.com",
“移动”:“0100000000”,
“注释”:[“注释1”、“注释2”、“注释3”]
},
{
“id”:“2”,
“姓名”:“领带”,
“董事会”:“2055年10月29日”,
“类型”:“主要”,
“电子邮件”:b@v.net",
“移动”:“0100000000”,
“注释”:[“注释4”、“注释5”、“注释6”]
}
];
函数搜索(查询){
//搜索代码转到这里
}
//搜索示例
搜索('.net')//预期数据[1]
搜索(“阿里”)//预期数据[0]

搜索('0110')//预期数据[0],数据[1]
我提出了一个简单的解决方案——虽然不是最优的,但它是有效的。 这样做没有得分的模糊搜索嵌套搜索

var数据=[
{
“id”:“1”,
“姓名”:“阿里”,
“董事会”:“2055年10月29日”,
“类型”:“主要”,
“电子邮件”:空,
“移动”:“010100000000”,
“附注”:[“附注1”、“附注2.净额”、“附注3”]
},
{
“id”:“2”,
“姓名”:“领带”,
“董事会”:“2055年10月29日”,
“类型”:“主要”,
“电子邮件”:b@v.net",
“移动”:“0100000000”,
“注释”:[“注释4”、“注释5”、“注释6”]
}
];
/**
*查询:要与之匹配的查询字符串
*dataArray:用于搜索的数据数组变量、数组或对象
**/
函数搜索(查询、数据数组){
//搜索代码转到这里
//console.log(查询);
var匹配=[];
//初始化空值
如果(!dataArray)dataArray={};
如果(!query)query='';
forEach(函数(obj,索引){
for(obj中的var键){
如果(!obj.hasOwnProperty(key)| |!obj[key])继续;
if(obj[key].toString().indexOf(查询)!=-1)
{
匹配推送(obj);
} 
}
});
返回匹配;
}
//搜索示例。
log(“found”,search('.net',data).length)//预期数据[0]数据[1]
console.log(“找到”,搜索('Ali',数据).length)//预期数据[0]

console.log(“找到”,搜索('0116',数据).length)//预期数据[0],数据[1]
为什么会得到两个
'ali'
的结果?您所说的“模糊搜索”是什么意思?是否希望
query
与任何对象值匹配?返回匹配项的逻辑是什么?另请参见@guest271314,这更符合我对模糊搜索的预期。@NinaScholz抱歉,我现在修复了它