Как сделать ответы на сообщения пользователя?

Есть массив с вопросом и ответами, например такой:

[
    '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>

→ Ссылка