Javascript 如何通过关键词获取最相关的问题

Javascript 如何通过关键词获取最相关的问题,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我想通过查看用户输入找到答案,并检查哪个答案的关键字最匹配。 我有一个对象数组。当用户提交表单时,我希望查看用户输入,并检查用户输入中哪个答案的标签最多。 我不知道如何开始。 有人知道我是如何在JS或jQuery中做到这一点的吗? 我需要找到答案,其中大多数关键字(标签)是在用户输入 这是我现在拥有的代码: var objectArr=[{ “标签”:[“windows”、“3cx”、“webclient”、“hoe”、“venster”、“windows venster”], “答案”:“M

我想通过查看用户输入找到答案,并检查哪个答案的关键字最匹配。
我有一个对象数组。当用户提交表单时,我希望查看用户输入,并检查用户输入中哪个答案的标签最多。

我不知道如何开始。
有人知道我是如何在
JS
jQuery
中做到这一点的吗?
我需要找到答案,其中大多数关键字(标签)是在用户输入

这是我现在拥有的代码:

var objectArr=[{
“标签”:[“windows”、“3cx”、“webclient”、“hoe”、“venster”、“windows venster”],
“答案”:“Maak op je bureaublad een Snelotets aan en kies als doel:
“C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe”–应用程序=https://pbx000000.fluxcloud.eu:5001/webclient
他在全国人民广播公司(PBX)的链接中使用了数百万美元。” }, { “标签”:[“swyx”、“toestel”、“opstarten”、“blijft”、“opnieuw”、“mijn”、“werkt niet”], “回答”:“软件更新是最新的。
我可以在herstellen的软件更新中使用该软件。
}, { “标签”:[“toestel”、“vast”、“bellen”、“kan niet”、“werkt niet”], “答案:”“Zorg ervoor dat de telefonie Applications(SwyxIt!)是一个最新的应用程序,它是一个最新的应用程序。
它是一个最新的应用程序,在SwyxIt!naar:Instellingen–CTI–CTI gebruiken–start koppelen。” }, { “标签”:[“客户”、“swyx”、“inloggen”、“kan niet”、“werkt niet”], “回答:”“控制者在电脑上工作,工作时间为3分钟。控制者在电脑上工作,工作时间为3分钟。
控制者在电脑上工作,工作时间为3分钟。
控制者在电脑上工作,工作时间为3分钟。
控制者在电脑上工作,工作时间为3分钟。
控制者在电脑上工作,工作时间为3分钟。
}, { “标签”:[“beltoon”、“geen”、“swyx”、“swyxphone”、“mijn”], “回答”:“在贝尔西姆布尔市和斯特里普·多尔希恩市的展示中使用了L640手机,
这是一个非常有趣的时刻。
这是一个非常有趣的时刻 } ]; $(“#提交”)。单击(功能(e){ var输入=$(“#用户_输入”).val(); //通过用户输入中的标记在对象数组中搜索答案的部分 var answer=“在对象中查找”; ///////// $(“#答案”).html(答案); });

发送

你的意思是这样的

您可以计算结果以缩小范围

var objectArr=[{“tags”:[“windows”、“3cx”、“webclient”、“hoe”、“venster”、“windows venster”],“answer”:“Maak op je Bureaaublad een sneltoets aan en kies als doel:
“C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe”–应用程序=https://pbx000000.fluxcloud.eu:5001/webclient
在naar het juiste PBX nummer wat er hoort的链接中,{“标签”:[“swyx”、“toestel”、“opstarten”、“blijft”、“opnieuw”、“mijn”、“werkt niet”],“答案”:“软件更新是最新的。
我可以在herstellen的软件上使用toestel opsturen naar。
de kosten van Hestellen van het toestel bedraagt€25,{“标签”:[“toestel”,“vast”,“bellen”,“kan niet”,“werkt niet”],“答案”:“Zorg ervoor dat de telefonie application(SwyxIt!)”这是一个很好的例子。
这是一个很好的例子,但在SwyxIt!naar:Instellingen–CTI–CTI gebruiken–start koppelen.},{“tags”:[“client”,“swyx”,“inloggen”,“kan niet”,“werkt niet”],“answer”:控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者,控制者SwyxPhone L640 laat在belsymbool zien waar和streep doorheen staat的屏幕上显示。
在最短的时间内,在任何活动中都可以看到它。
Door De“*”toets voor langere tijd,kun je De beltonen weer Activern.”; const finder=function(search,target){return search.map(function(val){return target.filter(function(e){return val==e;}).length;} $(“表格”)。关于(“提交”,职能部门(e){ e、 预防默认值(); $(“#答案”).empty(); 常量输入=$(“#用户输入”).val().toLowerCase().split(“”); 让我们回答“什么也没找到”; 设most=0; objectArr.forEach(项=>{ const count=finder(输入,item.tags)。reduce((a,b)=>a+b,0) 如果(计数>most){ 答案=项目。答案 } }) $(“#答案”).html(答案); }); /*随便找 var answers=objectArr.filter(项=>{ 返回input.some(r=>item.tags.includes(r)) }) */

发送

你的意思是这样的

您可以计算结果以缩小范围

var objectArr=[{“tags”:[“windows”、“3cx”、“webclient”、“hoe”、“venster”、“windows venster”],“answer”:“Maak op je Bureaaublad een sneltoets aan en kies als doel:
“C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe”–应用程序=https://pbx000000.fluxcloud.eu:5001/webclient
在naar het juiste PBX nummer wat er hoort的链接中,{“标签”:[“swyx”、“toestel”、“opstarten”、“blijft”、“opnieuw”、“mijn”、“werkt niet”],“答案”:软件更新是最新的。
我可以在herstellen的软件上使用toestel opsturen naar。
de kosten van Hestellen van het toestel bedraagt€25,{“标签”:[“toestel”,“vast”,“bellen”,“kan niet”,“werkt niet”],“答案”:“Zorg ervoor dat de telefonie Applications(SwyxIt!))opgestart是否与toestel相同