如何修改MCQ应用JavaScript代码,从题库随机抽取5道题目?
解决MCQ应用随机选5道题的方案
直接给你可落地的修改步骤,照着改就行:
- 先在你的JavaScript代码里加一个随机选题的函数,用来从题库里挑出不重复的5道题:
// 从原题库中随机选出指定数量的不重复题目 function getRandomQuestions(originalArray, pickCount) { const tempArr = [...originalArray]; // 复制原数组,避免修改原始题库 const pickedQuestions = []; for (let i = 0; i < pickCount; i++) { // 生成当前临时数组范围内的随机索引 const randomIdx = Math.floor(Math.random() * tempArr.length); // 取出该索引对应的题目,同时从临时数组移除(防止重复选中) pickedQuestions.push(tempArr.splice(randomIdx, 1)[0]); } return pickedQuestions; }
- 找到你代码里直接使用
quizData的地方,把它替换成调用上面函数得到的结果:
// 替换原来直接用quizData的逻辑,改成选5道随机题 const selectedQuizData = getRandomQuestions(quizData, 5);
- 之后所有和题目渲染、答题相关的逻辑,都用
selectedQuizData来代替原来的quizData就行。比如循环渲染题目、计算总分这些步骤,都把数组换成这个新的随机数组。
这个方法的好处是保证选出来的5道题绝对不重复,而且不会改动你原来的题库数组,后续刷新页面还能重新随机选不同的题目。
内容的提问来源于stack exchange,提问作者Stac Flo
相关产品推荐
相关产品推荐

