Я хочу найти ответ, просмотрев вводимые пользователем данные и проверив, какой ответ содержит наиболее подходящие ключевые слова.У меня есть массив объектов.Когда пользователь отправляет форму, я хочу просмотреть пользовательский ввод и проверить, какой ответ имеет больше тегов, которые находятся внутри пользовательского ввода.
Я не знаю с чего начать.Кто-нибудь знает, как я могу сделать это в JS
или jQuery
?
Мне нужно найти ответ, где большинство ключевых слов (тегов) в пользовательском вводе.
Этокод у меня сейчас:
var objectArr = [{
"tags": ["windows", "3cx", "webclient", "hoe", "venster", "windows-venster"],
"answer": "Maak op je bureaublad een sneltoets aan en kies als doel:<br/>“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –app=https://pbx000000.fluxcloud.eu:5001/webclient <br/>Hier verander je de 000000 in de link naar het juiste PBX-nummer wat er hoort."
},
{
"tags": ["swyx", "toestel", "opstarten", "blijft", "opnieuw", "mijn", "werkt niet"],
"answer": "Tijdens een software-update is de stroom mogelijk van het toestel af geweest. <br/> Je kan het toestel opsturen naar ons om de software te herstellen.<br/> De kosten van het herstellen van het toestel bedraagt €25,-"
},
{
"tags": ["toestel", "vast", "bellen", "kan niet", "werkt niet"],
"answer": "Zorg ervoor dat de telefonie-applicatie (SwyxIt!) is opgestart en dat jouw toestel is ingelogd op je eigen naam.<br/> Als dat het geval is, ga dan in SwyxIt! naar: Instellingen – CTI – CTI gebruiken – start koppelen."
},
{
"tags": ["client", "swyx", "inloggen", "kan niet", "werkt niet"],
"answer": "Controleer de tijd op de pc, deze mag niet meer dan 3 minuten afwijken van de tijd op de Swyxserver.<br/> Klopt de tijd op je pc, maar kun je nog steeds niet inloggen?<br/> Controleer dan je SwyxIt!-versie. Deze mag niet nieuwer zijn dan de OZMO cloud-omgeving."
},
{
"tags": ["beltoon", "geen", "swyx", "swyxphone", "mijn"],
"answer": "SwyxPhone L640 laat in het display een belsymbool zien waar een streep doorheen staat.<br/> De beltonen van het toestel zijn op dat moment uitgeschakeld.<br/> Door de <b>“*”</b> toets voor langere tijd in te drukken, kun je de beltonen weer activeren."
}
];
$("#submit").click(function(e) {
var input = $("#user_input").val();
// the part that searches in the object array for an answer by tags that are inside user input
var answer = "find in object";
/////////
$("#answer").html(answer);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="user_input">
<button id="submit">Send</button>
<div id="answer">
</div>
Я пробовал это:
var answer = "";
for(var i=0;i<objectArr.length;i++){
for(var o=0;o<objectArr[i].tags.length;o+++){
if($("#user_input").val().includes(objectArr[i].tags[o])){
answer = objectArr[i]['answer'];
}
}
}
$("#answer").html(answer);
Но таким образом он просто ищет одно ключевое слово.Я хочу найти тот, который соответствует большинству ключевых слов.