HTML/Javascript 测验应用程序>使问题随机化

HTML/Javascript quiz app > make questions random

提问人:WillWalsh 提问时间:7/24/2023 更新时间:7/24/2023 访问量:51

问:

我对 HTML/CSS/JS 相当陌生......我见过随机化测验问题的函数,但是无法使任何解决方案与我已经拥有的代码一起使用。

我真的很感激有人向我展示一种随机化所显示问题的方法。并且还想简要说明它为什么有效。

这不是课堂作业/课程作业......我正在尝试为我参加的一系列课程创建一个测验。

提前感谢您:)

此代码有效,但不会随机化问题。问题存储在“questions.js”中,如下所示:

问题.js

{
        numb: 7,
        question: "The property tax is an ______   ______ tax, meaning it is based on value.",
        answer: "B. ad valorem",
        options: [
            "A. carpe diem",
            "B. ad valorem",
            "C. vino veritas",
            "D. non verba"
        ]
    },

脚本.js

    const questionText = document.querySelector('.question-text');
    //    questionText.textContent = `${questions[index].numb}. ${questions[index].question}`;
    questionText.textContent = `${questions[index].question}`;
    let optionTag = `<div class="option"><span>${questions[index].options[0]}</span></div>
    <div class="option"><span>${questions[index].options[1]}</span></div>
    <div class="option"><span>${questions[index].options[2]}</span></div>
    <div class="option"><span>${questions[index].options[3]}</span></div>`;```
JavaScript HTML 数学 随机

评论

1赞 Roko C. Buljan 7/24/2023
你有没有想过只是洗牌你的测验对象数组

答:

1赞 Md Minhaz Ahamed 7/24/2023 #1

要获得随机问题,它是关于在零和 questions.js 数组的长度之间生成一个随机索引 请尝试以下代码

// To ensure uniqueness, store the generated integer in a Set
const uniqueNumbersSet = new Set();

function getRandomIndexFromArray(arr) {
  const randomIndex = Math.floor(Math.random() * arr.length);

  // If the generated integer is not unique, keep generating new ones until it is unique
  while (uniqueNumbersSet.has(randomIndex)) {
    const newRandomIndex = Math.floor(Math.random() * arr.length);
    randomIndex = newRandomIndex;
  }

  // Store the unique integer in the Set
  uniqueNumbersSet.add(randomIndex);

  return randomIndex;
}

用法:

const randomIndex = getRandomIndexFromArray(YOUR-QUESTIONS-LIST)

现在使用 to 附加到脚本.js 而不是randomIndexindex

完成测验后,不要忘记清空。uniqueNumbersSet

评论

0赞 WillWalsh 7/24/2023
谢谢。我现在正在研究这个。非常感谢您抽出时间回复。