сравнение прослушивателя событий с переменной integer

#javascript #dom #dom-events #event-listener #keydown

#javascript #dom #dom-события #прослушиватель событий #нажатие клавиши

Вопрос:

Я на самом деле практикуюсь с прослушивателем событий. Я пытаюсь сделать очень простую игру, в которой появляется стрелка, и пользователь сопоставляет ее на клавиатуре. Если это правильно, оценка увеличивается, а если это не так, оценка сбрасывается.

Это работает нормально, но когда стрелка не совпадает, оператор if, который сбрасывает оценку, не срабатывает, и вместо этого оценка увеличивается.

Вот мой код (прошу прощения, он не чистый)

 const fleche = document.querySelector('.fas');
const showScore = document.querySelector('#score');
window.addEventListener('keydown',compare);
let score = 0;
let jet = 0;

showScore.innerHTML=`Score : ${score}`;
function jetdes(){
     jet = Math.floor(Math.random()*4 1);
     randomArrow();
}
function randomArrow(){
switch (jet) {
    
    case 1:
        fleche.classList.remove('fa-arrow-up','fa-arrow-down','fa-arrow-left','fa-arrow-right');
        fleche.classList.add('fa-arrow-up');
        
    break;
    case 2:
        fleche.classList.remove('fa-arrow-up','fa-arrow-down','fa-arrow-left','fa-arrow-right');
        fleche.classList.add('fa-arrow-down');
        
    break;
    case 3:
        fleche.classList.remove('fa-arrow-up','fa-arrow-down','fa-arrow-left','fa-arrow-right');
        fleche.classList.add('fa-arrow-left');
        
    break;
    case 4:
        fleche.classList.remove('fa-arrow-up','fa-arrow-down','fa-arrow-left','fa-arrow-right');
        fleche.classList.add('fa-arrow-right');
        
    break;
}}

function compare(e){
if(e.code='ArrowUp' amp;amp; jet === 1){
    score  ;
    showScore.innerHTML=`Score : ${score}`;
    console.log(1);
    jetdes();
    
}
else if(e.code='ArrowDown' amp;amp; jet === 2){
    score  ;
    showScore.innerHTML=`Score : ${score}`;
    console.log(2);
    jetdes();
    
}
else if(e.code='ArrowLeft' amp;amp; jet === 3){
    score  ;
    showScore.innerHTML=`Score : ${score}`;
    console.log(3);
    jetdes();
    
}
else if(e.code='ArrowRight' amp;amp; jet === 4){
    score  ;
    showScore.innerHTML=`Score : ${score}`;
    console.log(4);
    jetdes();
    
}
else {
    score = 0;
    showScore.innerHTML=`Score : ${score}`;
    console.log(5);
    jetdes();
    
}
}

jetdes();
 

Я знаю, что это, вероятно, очевидная ошибка, но я некоторое время ломал голову над этим.

Спасибо!

Комментарии:

1. внутри ваших операторов if это должно быть e.code == 'Arrow...' вместо e.code='Arrow...'

2. Классический. Большое вам спасибо.