Кнопка отмены в приглашении не будет отменена должным образом, но перейдет к следующему предупреждению. Кто-нибудь может объяснить? - PullRequest
0 голосов
/ 02 апреля 2020

ниже - код, который я пытался заставить работать. Все работает, кроме того, что когда кнопка отмены нажата, она все равно переходит к предупреждению о неправильном ответе и не будет нарушать функцию должным образом. Я не могу понять почему. Может ли кто-нибудь просветить меня, пожалуйста?

    let question = theQuestion;
    if (question === null || question === '' || question === 'null') {
        // console.log(`game canceled`);
        return;
    } else if (question == rightAnswer) {
        console.log('right answer');
        return true;
    } else if (question !== rightAnswer && question !== null && question !== '' && question !== 'null') {
        alert(`You lost!`);
        console.log('game lost')
    }
}
et question1 = `What is my name? 1. Rashad 2. Rashid 3. Richard 4. Alovsat`;
let question2 = `What is my age? 1. 23 2. 25 3. 28 4. 30`;
let question3 = `How tall am I? 1. 190cm 2. 188cm 3. 192cm 4. 198cm`;

if (checkQ(+prompt(question1), 1)) {
    alert(`You have 100 points`);
    if (checkQ(+prompt(question2), 2)) {
        alert(`You have 500 points`);
        if (checkQ(+prompt(question3), 3)) {
            alert('You won!');
        }
    };
} else {
    console.log(`game lost`)
}

1 Ответ

0 голосов
/ 02 апреля 2020

попробуйте это:

const rightAnswers = ['Rashad','25','188cm'];

const questions = [
  `What is my name? 1. Rashad 2. Rashid 3. Richard 4. Alovsat`,
  `What is my age? 1. 23 2. 25 3. 28 4. 30`,
  `How tall am I? 1. 190cm 2. 188cm 3. 192cm 4. 198cm`
];
const points = [100,200,500];

function checkQ(answer, idx){
    if (answer === null) {
        console.log(`game canceled`);
        return null;
    } else if (answer == rightAnswers[idx]) {
        console.log('right answer');
        return true;
    } else if (answer != rightAnswers[idx]) {
        alert(`You lost!`);
        console.log('game lost')
        return false;
    }
}
const size = questions.length;
let correctCount = 0;
let point = 0;
questions.forEach(function( question, index ) {
  if (checkQ(prompt(question), index)) {
    correctCount +=1;
    alert("You have "+points[index]+" points");
  }
});

if(size==correctCount){
  alert('You won!');
}

</script>
...