Как сделать ответы на сообщения пользователя?
Есть массив с вопросом и ответами, например такой:
[
'vopos' => 'что делать?',
'otveti' => [
'ничего'
'что хочешь'
....
]
],
.....
И я бы хотел чтобы после отправки сообщения от пользователя, скрипт сверял, есть ли в тексте совпадение в одном из vopos и если есть, выдавался бы случайный ответ из otveti
function sendMess(text) {
//text - это текст который отправляет пользователь
//здесь мне нужно просто получить текст из **otveti** который совпал(хотя бы по части строки) c **vopros**
}
буду очень благодарен за помощь!
Ответы (1 шт):
Автор решения: Pilaton
→ Ссылка
Ну, что-то примерное такое...
let input = document.querySelector('#input');
let button = document.querySelector('#button');
//---------
let arr = [{
vopos: 'куда ехать?',
otveti: ['налево', 'направо', 'прямо'],
},
{
vopos: 'что делать?',
otveti: ['ничего', 'что хочешь'],
},
];
//---------
function sendMess(textQuestions, arr) {
textQuestions = textQuestions.toLowerCase();
let obj = arr.find((el) => textQuestions === el.vopos);
let res = obj?.otveti[randomInteger(0, obj.otveti.length - 1)];
return Boolean(res) ? res : 'В базе ничего не найдено...';
}
//---------
function randomInteger(min, max) {
let rand = min + Math.random() * (max + 1 - min);
return Math.floor(rand);
}
//---------
button.addEventListener('click', () => {
let value = input.value;
console.log(sendMess(value, arr));
});
<input type="text" id="input" value="" placeholder="Ваш вопрос...">
<button id="button" type="button">Подсказать!</button>