#javascript
#javascript
Вопрос:
Я пытаюсь сравнить входные данные из окна запроса с позицией правильного ответа в массиве внутри массива.
Эта функция записывает вопрос и возможные ответы на консоль. Затем он регистрирует правильный ответ, но не распознает ввод как правильный ie. он всегда будет показывать оператор else. Код:
questionArray[randomQ].questionPrompt();
var currentQ = randomQ;
Question.prototype.answerPrompt = function(){
var tryQ = prompt("Enter number of the correct answer.");
if (currentQ === tryQ){
console.log('The correct answer is ' this.answer)
} else {
console.log('Try again. ' this.answer)
}
};
Журнал консоли. Последняя строка появляется после ввода 0:
Question?
0) answer 0 - correct answer
1) answer 1
2) answer 2
Try again. 0
Если я использую
if (questionArray.answerArray[currentQ] === tryQ)
затем найден правильный элемент массива и указан как неопределенный в TypeError. Как мне использовать этот элемент массива для сравнения с ответом на запрос?
Ответ №1:
prompt
всегда будет возвращать строку, поэтому она не будет ===
содержать число. Сначала преобразуйте результат запроса в число.
Вы также, вероятно, захотите исключить пустую строку из значения по умолчанию 0.
const guess = prompt("Enter number of the correct answer.");
const tryQ = guess amp;amp; Number(guess);
Комментарии:
1. Спасибо! У меня было много неудач с использованием Number(), я понятия не имел, что это так просто.