83992


### 説明

現在JavaScriptを学習中で、自作npmを作成しています。  
npmの内容としましては、5問連続で問題に答えてもらい、5問中4問以上あっていたらクリアという仕様にしたいと思っております。

### 実行環境

  * macOS Big Sur バージョン11.6
  * npm 7.21.1
  * node 16.9.0

### やりたいこと

enquirerを使用して、5問連続でクイズが出題できるようにしたいです。  
こちらの記事を参考にして作成しております。  
<https://github.com/enquirer/enquirer#quiz-prompt>

### やってみたこと

`for...of`を使用してみたが、期待の結果とはならなかったです。

[code]

    // main.js
    
    const data = require('./data')
    const { Quiz } = require('enquirer')
    // 0~10の間で得たい場合は、11を指定
    const randomNumber = Math.floor(Math.random() * 3)
    
    class SetQuiz {
      introduce () {
        console.log('関西の難読地名クイズを行います。')
      }
    
      async set () {
        const answer = await new Quiz(data.questions[randomNumber]).run()
        if (answer.correct) {
          console.log('正解! すごい!')
        } else {
          console.log(`残念、不正解。 答えは... 「${answer.correctAnswer}」`)
        }
        console.log('お疲れさま')
      }
    
      async main () {
        this.introduce()
        this.set()
      }
    }
    for (let step = 0; step < 2; step++) {
      const quiz = new SetQuiz()
      quiz.main()
    }
    
[/code]

[code]

    // data.js
    
    const questions = [
      {
        name: 'name',
        message: '「枚方」の読み方を教えて',
        choices: ['まいかた', 'まかた', 'まいほう', 'ひらかた'],
        correctChoice: 3
      },
      {
        name: 'name',
        message: '「放出」の読み方を教えて',
        choices: ['はなた', 'はなてん', 'ほうしゅつ', 'ほうで'],
        correctChoice: 1
      },
      {
        name: 'name',
        message: '「住道」の読み方を教えて',
        choices: ['じゅうどう', 'すみみち', 'すみのみち', 'すみのどう'],
        correctChoice: 3
      }
    ]
    module.exports = {
      questions
    }
    
[/code]

[![失敗した画像](https://i.stack.imgur.com/xMV56.png)](https://i.stack.imgur.com/xMV56.png)  
[![失敗した画像](https://i.stack.imgur.com/LxMsv.png)](https://i.stack.imgur.com/LxMsv.png)

### 現状

1問は出題することができていて、正解か不正解かも判定できている  
[![現在の状況画像](https://i.stack.imgur.com/0jAqN.png)](https://i.stack.imgur.com/0jAqN.png)  
[![現在の状況画像](https://i.stack.imgur.com/x4F4f.png)](https://i.stack.imgur.com/x4F4f.png)

### 現状のコード

[code]

    // main.js
    
    const data = require('./data')
    const { Quiz } = require('enquirer')
    // 0~10の間で得たい場合は、11を指定
    const randomNumber = Math.floor(Math.random() * 3)
    
    class SetQuiz {
      introduce () {
        console.log('関西の難読地名クイズを行います。')
      }
    
      async set () {
        const answer = await new Quiz(data.questions[randomNumber]).run()
        if (answer.correct) {
          console.log('正解! すごい!')
        } else {
          console.log(`残念、不正解。 答えは... 「${answer.correctAnswer}」`)
        }
        console.log('お疲れさま')
      }
    
      async main () {
        this.introduce()
        this.set()
      }
    }
    const quiz = new SetQuiz()
    quiz.main()
    
[/code]

[code]

    // data.js
    
    const questions = [
      {
        name: 'name',
        message: '「枚方」の読み方を教えて',
        choices: ['まいかた', 'まかた', 'まいほう', 'ひらかた'],
        correctChoice: 3
      },
      {
        name: 'name',
        message: '「放出」の読み方を教えて',
        choices: ['はなた', 'はなてん', 'ほうしゅつ', 'ほうで'],
        correctChoice: 1
      },
      {
        name: 'name',
        message: '「住道」の読み方を教えて',
        choices: ['じゅうどう', 'すみみち', 'すみのみち', 'すみのどう'],
        correctChoice: 3
      }
    ]
    
    module.exports = {
      questions
    }
    
[/code]

以上のような状況となっております。  
少しでもアドバイスいただけたら幸いです。  
よろしくお願い致します‍♂️


CC BY-SA 4.0
2021-12-04T07:32:50.143
83952
2021-12-07T02:43:05.720
2021-12-07T02:40:04.720
49332
49332
question
javascript node.js npm
enquirerの使い方について(npmの作成)


自己解決しました！‍♂️  
作りたいものを作ることができました。


CC BY-SA 4.0
2021-12-07T02:43:05.720
83992
2021-12-07T02:43:05.720
49332
83952
answer