Javascript - Сравните пользовательское значение ввода со случайно сгенерированным значением - PullRequest
0 голосов
/ 20 октября 2018

У меня есть функция, которая отображает случайное слово из массива неповторяющимся образом, и текстовое поле, в котором пользователь должен вводить одно и то же сгенерированное слово.

Я пытался использовать оператор switchчтобы проверить ответ пользователя, сравнивая его входные данные со случайно сгенерированным словом, но оно не работает.

Мой вопрос: возможно ли даже сравнить такие вещи?И если да, то как?

Это мой код:

// Generate random, non-repeated word
const p = document.getElementById("randomWord");
const origWords = ["alpha", "bravo", "charlie", "delta", "echo"];
let remainingWords = [];

function randomize() {
  if (remainingWords.length === 0) remainingWords = origWords.slice();
  const {
    length
  } = remainingWords;
  const [quote] = remainingWords.splice(Math.floor(Math.random() * length), 1);
  p.textContent = quote;
}
randomize();

// Validate answer
function submit001() {
  var answers = document.getElementById("input001").value.toLowerCase();
  switch (answers, remainingWords) {
    case "":
      text = "Please write something.";
      break;
    case answers == remainingWords:
      text = "Correct.";
      randomize();
      break;
    default:
      text = "Wrong.";
  }
  document.getElementById("comment").innerHTML = text
}
<input type="text" id="input001" autofocus maxlength="7" spellcheck="false" onKeyDown="if(event.keyCode==13) submit001();">
<p id="randomWord"></p>
<p id="comment"></p>

1 Ответ

0 голосов
/ 20 октября 2018

Оператор if, вероятно, является более подходящим решением проблемы.Попробуйте это:

// Generate random, non-repeated word
const p = document.getElementById("randomWord");
const origWords = ["alpha", "bravo", "charlie", "delta", "echo"];
let remainingWords = [];

function randomize() {
  if (remainingWords.length === 0) remainingWords = origWords.slice();
  const length = remainingWords;
  const [quote] = remainingWords.splice(Math.floor(Math.random() * length), 1);
  p.textContent = quote;
}
randomize();

// Validate answer
function submit001() {
  var answers = document.getElementById("input001").value.toLowerCase();
  if (answers == "") {
    text = "Please write something.";
  } else if (answers == p.textContent) {
    text = "Correct.";
    randomize();
  } else {
    text = "Wrong.";
  }
  document.getElementById("comment").innerHTML = text
}
<input type="text" id="input001" autofocus maxlength="7" spellcheck="false" onKeyDown="if(event.keyCode==13) submit001();">
<p id="randomWord"></p>
<p id="comment"></p>
...