我需要这样做: 单击按钮时:打印出随机一组:question,options并等待用户选择其中一个选项。
我已经在stackoverflow和其他网站上搜索了答案,但仍无法弄明白。
到目前为止,我有两种方法: 第一种方法:
function data(question, options, answer) {
this.question = question;
this.options = options;
this.answer = answer;
}
var q1 = new data("Question 1", ["Option 1", "Option 2", "Option 3", " Option 4"], 3);
//then keep creating new var q
第二种方法:
var pool = {
q1: {
question: "Question 1",
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
answer: 2
},
q2: {}
}
//then randomly pick a q out of the array(?)/object pool
我被困在这里。我无法弄清楚如何显示存储集的随机集(每个集有一个问题,4个答案选项),并且该集还带有正确的答案作为1个选项的索引。
答案 0 :(得分:1)
这可能会给你一个提示来做你的测验生成器,这就是我现在出来的功能,该函数会给你一个obejct的随机属性, HOWEVER 为你的测验生成器想要过滤至少已经显示或打印的属性。现在试试这个,让我知道如果它帮助你解决问题。
var pool = {
q1: {
question: "Question 1",
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
answer: 2
},
q2: {
question: "Question 2",
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
answer: 2
},
q3: {
question: "Question 3",
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
answer: 2
},
q4: {
question: "Question 3",
options: ["Option 1", "Option 2", "Option 3", "Option 4"],
answer: 2
},
}
function randomIt(obj) {
var keys = Object.keys(obj)
return obj[keys[ keys.length * Math.random() << 0]];
};
console.log(randomIt(pool));
Alsa a Jsfiddle here。