实现三元运算符创建无限循环

    这是JS:


function Question(question, answers, correct) {

  this.question=question;

  this.answers=answers;

  this.correct=correct;

}


Question.prototype.displayQuestion=function () {

  console.log(this.question)

  this.answers.forEach((answer, i)=> {

    console.log(`${i}: ${answer}`)

  })

}


Question.prototype.checkAnswer=function(answer) {

  (answer==this.correct)? true: false

}



var q1=new Question("What day is it today?", ["Monday", "Tuesday"], 0)

var q2=new Question("How are you?", ["Good", "Really good"], 1)

var q3=new Question("Is it nice out?", ["Yes", "No", "In-between"], 3)

var questions=[q1, q2, q3];


function createGame() {

  var num=Math.floor(Math.random()*questions.length)

  questions[num].displayQuestion()

  var userInput=parseInt(prompt("Please enter answer"))

  questions[num].checkAnswer(userInput)? console.log('You won!'): createGame()

}


createGame()

这是 index.html


<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>Section 5: Advanced JavaScript: Objects and Functions</title>

    </head>


    <body>

        <h1>Section 5: Advanced JavaScript: Objects and Functions</h1>

        <script src="script.js"></script>

    </body>

</html

我对这个简单程序的目标是不断输出问题,直到用户做对为止。如果用户答对了问题,您将使用 console.log("You won!") 并且程序将停止运行。我在三元运算符的帮助下做到了这一点。但是,为什么我的程序会一直运行?


跃然一笑
浏览 131回答 1
1回答

ABOUTYOU

checkAnswer总是返回 undefined 因为你没有做return任何事情:Question.prototype.checkAnswer=function(answer) {&nbsp; return answer==this.correct}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript