javascrpit - оператор if не работает.не выравнивает число с переменной - PullRequest
2 голосов
/ 19 сентября 2019

Здравствуйте, пользователи stackoverflow,

У меня возникла проблема, когда консоль не выводит "geschafft", как я этого хотел.Я хотел создать сайт, где бы он ни рассчитывал, насколько быстро вы набирали цифры, поэтому мне нужно проверить, равно ли число, набранное пользователем, данному номеру.Отрезанный код, который не работает:

var gedrueckt = "";
var zahl = "";
var spielerZahl = '';
//erzeugen der Zufallszahl
var min = 0;
var max = 9;
var zahl = Math.round(Math.random() * (max - min)) + min;
console.log(zahl);
//Zahl in HTML ausgeben
document.getElementById("zutippen").innerHTML = zahl;

//Erkennung der Taste
window.addEventListener("keydown", TasteGedrueckt,);
function TasteGedrueckt (evt) {
     gedrueckt = evt.key;
        if (gedrueckt == 1){
            spielerZahl = 1;
        }
        else if (gedrueckt == 2){
            spielerZahl = 2;
        }
        else if (gedrueckt == 3){
            spielerZahl = 3;
        }
        else if (gedrueckt == 4){
            spielerZahl = 4;
        }
        else if (gedrueckt == 5){
            spielerZahl = 5;
        }
        else if (gedrueckt == 6){
            spielerZahl = 6;
        }
        else if (gedrueckt == 7){
            spielerZahl = 7;
        }
        else if (gedrueckt == 8){
            spielerZahl = 8;
        }
        else if (gedrueckt == 9){
            spielerZahl = 9;
        }
        else if (gedrueckt == 0){
            spielerZahl = 0;
        }
        console.log(spielerZahl);
}

//Überprüfung ob zahl gleich
if (zahl == spielerZahl){
    console.log("geschafft!");
}

Извините за мой плохой английский, я надеюсь, что кто-то может помочь мне.Погуглил три дня, тоже попробовал parseInt и похоже ничего не работает ..

Ответы [ 2 ]

2 голосов
/ 19 сентября 2019

Вам необходимо выполнить проверку после того, как пользователь нажмет клавишу, поэтому проверка должна быть вызвана прослушивателем событий.Также вы можете проверить, является ли ключ одинаковым, выполнив +evt.key === zahl или evt.key == zahl.

var min = 0;
var max = 9;
var zahl = Math.round(Math.random() * (max - min)) + min;
console.log(zahl);
document.getElementById("zutippen").innerHTML = zahl;
window.addEventListener("keydown", TasteGedrueckt);

function TasteGedrueckt(evt) {
  if (+evt.key === zahl) {
    console.log("geschafft!");
  }
}
<div id="zutippen"></div>

Я предполагаю, что вы в конечном итоге захотите заставить его работать более чем на 1 предмете, в этом случае вы можете сделать:

var min = 0;
var max = 9;
var zahl;
window.addEventListener("keydown", TasteGedrueckt);
nextNumber();

function TasteGedrueckt(evt) {
  if (+evt.key === zahl) {
    console.log("geschafft!");
    nextNumber();
  }
}

function nextNumber() {
  zahl = Math.round(Math.random() * (max - min)) + min;
  console.log(zahl);
  document.getElementById("zutippen").innerHTML = zahl;
}
<div id="zutippen"></div>
1 голос
/ 19 сентября 2019

var gedrueckt = "";
var spielerZahl = '';
//erzeugen der Zufallszahl
var min = 0;
var max = 9;
var zahl = Math.round(Math.random() * (max - min)) + min;


function TasteGedrueckt (evt) {
  console.log('spielerZahl: ' + evt.key);
  //Überprüfung ob zahl gleich
  if(evt.key == zahl) {
    console.log("geschafft!");
  }   
}

//Zahl in HTML ausgeben
document.getElementById("zutippen").innerHTML = 'Gesuchte Zahl: ' + zahl;
window.addEventListener("keydown", TasteGedrueckt);
<div id="zutippen"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...