сравнение позиции массива с запросом (javascript)

#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(), я понятия не имел, что это так просто.