我想使用下面的代码片段来验证多个OTPs。如果一个OTP是正确的,则应询问用户下一个问题。 4个问题后,致以问候。

var question = prompt('Who shot Abraham Lincoln?');

switch (question) {
    case 'john wilkes booth':
    case 'John Booth':
    case 'John Wilkes Booth':
        alert("That\'s Right!");
        window.location.href = 'q2.html';
        break;

    default:
        alert("Sorry, that\'s not right.");
        alert('Please try again');
        history.refresh();
        break;
}


需要帮助来重新构建上面的代码。

最佳答案

解决方案如下



var verificationStatus = 'unverified';

    function questionnaire(questions, answers) {
        // Proceed only if # of questions and answers are equal
        if (questions && answers && questions.length === answers.length) {

            questions.forEach(function(question, index) {
                // Prompt only if verificationStatus has not been marked false already
                if (verificationStatus !== false) {
                    var userInput = prompt(question);

                    switch (userInput) {
                        case answers[index]:
                            verificationStatus = true;
                            break;

                        default:
                            verificationStatus = false;
                            break;
                    }
                }
            });
        }

        if (verificationStatus) {
            alert('Greetings, Verification Successful');
        } else {
            alert('Sorry, Verification Failed');
        }
    }

    // Please note # of questions and answers must be equal
    questionnaire(['Q1', 'Q2', 'Q3', 'Q4'], ['1', '2', '3', '4']);





行为


上面的代码段提出了4个问题,答案分别为1, 2, 3, 4
如果在任何时候给出错误的答案,都不会再提出任何问题。
最后会显示一条消息(问候)。


希望能帮助到你!

07-27 21:30