РЕДАКТИРОВАТЬ: РЕШАЕТ С ЗАЯВЛЕНИЕМ IF-ELSE
В моем выражении "if", или || сравнение не работает. Ранее я получил ответ с этого веб-сайта с этой строкой кода:
if(answers.indexOf(userAnswer.toLowerCase()) !== -1 || answers2.indexOf(userAnswer.toLowerCase()) !== -1)
Однако это не работает для моих целей (он видит, что userAnswer находится в массиве, в то время как я хочу, чтобы оператор был истинным, если третий пользовательский ответ отвечает с 3-м ответом в массиве.)
Вот мой код:
var answers = ["hello", "my name is sam", "are you healthy?", "what is your name?", "how much does it cost?", "excuse me", "i'm sorry", "yes, i understand", "no, i don't understand", "just wait please", "where is the toilet?"];
var answers2 = ["hello", "my name is sam", "how are you?", "what your name?", "how much is it?", "excuse me", "sorry", "yes, all right", "no, i don't understand", "wait, please", "where the toilet?"];
var totalYes = 0;
var ct = 0;
$("#submmit").click(function() {
function checkAnswers() {
var userAnswer = document.getElementById("b" + ct).value.toLowerCase();
/**aforementioned if statement or comparison wannabe on next line**/
if (userAnswer === answers[ct]) {
totalYes++;
$("#correcto").show();
} else {
$("#incorrecto").show();
if (answers[ct] !== answers2[ct]) {
alert("The correct answer is " + "'" + answers[ct] + "'" + " or " + "'" + answers2[ct] + "'");
} else {
alert("The correct answer is " + "'" + answers[ct] + "'");
}
}
}
checkAnswers();
ct++;
});
вы пытались поставить paranthesis вокруг каждой стороны OR?
if(( answers.indexOf(userAnswer.toLowerCase()) !== -1 ) || (answers2.indexOf(userAnswer.toLowerCase()) !== -1 ) );
возможно, это исправляет это, я всегда не уверен в js, но это определенно не ошибка