Как я могу проверить соответствие пары ключ-значение независимо от регистра? - PullRequest
0 голосов
/ 05 апреля 2020

Я создаю очень простую программу, которая отображает фразы Engli sh и пользовательские типы в переводе Spani sh. Фразы такие:

const phrases = {
  "Hello": "Hola",
  "Goodbye" : "Adios",
  //etc...
}

И соответствующие логики c:

Spanish_Phrases.prototype.calculate = function() {
  this.answer = (document.getElementById("answer").value);
  var question = $("#question").text();
  var questionMatcher = phrases[question].toString();
  var answerMatcher = this.answer;
  if (questionMatcher.ToLowerCase() == answerMatcher.ToLowerCase()) {
    alert("Correct!")
  } else {
    alert("Try again");
  }
}

HTML выглядит так:

<!DOCTYPE html>
<html>
<head>
    <title>Spanish</title>
</head>
<body>
    <center>
        <script src="./src/spanish.js">
        </script>
        <link href="skeleton.css" rel="stylesheet">
        <section>
            <h2>Spanish Quiz</h2>
            <h3 id="question"></h3>
      <button type="button" id="questionbutton">Get English Phrase</button>
            <form action="#" id="form" name="form" onsubmit="return false;">
                Type Spanish translation...<br>
                <input id="answer" name="answer" type="text"><br>
                <br>
                <input id="submit" type="submit" value="Submit">
            </form>
        </section>
    </center>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js">
    </script>
    <script>

Однако в тот момент, когда пользователь вводит ответ с неправильным регистром, он помечается как неправильный. Вот почему я пытался использовать «ToLowerCase», но он говорит, что это не функция. Я использую его в строке, и когда я отлаживаю в консоли, это показывает, что они являются стами, но все же это выдает ошибку. Я что-то упускаю из своего кода? Помощь будет высоко ценится, спасибо!

1 Ответ

1 голос
/ 05 апреля 2020

.ToLowerCase() - это не функция, потому что в camelcase вы должны начинать со строчной буквы, поэтому она должна быть .toLowerCase()

...