Тебе надо изучить что такое массив и как получить из него значения. Как использовать циклы. Как использовать объекты. И как использовать Math.random.
Твои ошибки:
if (textInput === null) return "Вы ввели пустое сообщение";
У элемента input[type=text] свойство value всегда имеет строковый тип данных. Так что твой textInput никогда не будет равен null.
Правильно так:
if (textInput) return "Вы ввели пустое сообщение";
Так как "falsy" строка может быть только пустой ''.
https://developer.mozilla.org/ru/docs/Glossary/Falsy if (textInput === arrayQA(question))
Тут уйма ошибок. Во первых доступ к элементу массива осуществляется используя индексы. Во вторых, используются не круглые скобки а квадратные. В третьих, ты пытаешься (пусть и не правильно) проверить единичный элемент, хотя в массиве их два и потенциально может быть гораздо больше. Тут требуется цикл или хотя бы определённый метод массива, например indexOf.
return Math.random(arrayQA(answer));
Math.random() не принимает аргументов. Он возвращает рандомное число от 0 до 1 (не включая).
Правильно так (с данным for циклом новичок должен быть знаком):
for(let i = 0; i < arrayQA.length; i++){
if(textInput == arrayQA[i].question){
return arrayQA[i].answer[Math.floor(Math.random() * arrayQA[i].answer.length)];
}
}
return "Нет заготовленного ответа. Прости!";
Или так (более современный метод):
for(const qa of arrayQA){
if(qa.question == textInput){
return qa.answer[Math.floor(Math.random() * qa.answer.length)];
}
}
return "Нет заготовленного ответа. Прости!";
С такими ошибками тебе надо основы подтягивать. Данная задача не для твоего уровня. Тебе как минимум с массивами надо поиграться перед тем как комбинировать базовые инструкции.
Как написать фунцкию ответа на вопросы JS?
У меня есть словарь, по которому нужно пройтись, но не понимаю как.
Все это хозяйство добавляется по кнопке