我有一个功能。我将一个带有问题和答案列表的对象传递给它。我从等于对象中问题数的范围生成一个随机数。脚本检查是否询问了该问题,如果没有,则询问它,然后将正确的答案传递给变量correct
。我想给出4个可能的答案,每个答案都从可能的答案列表中随机选择。我有这个。我只是想知道确保将正确答案放在列表中的最佳方法是什么。
到目前为止,这就是我所拥有的:它将四个答案放入四个目标框中。我想确保正确答案在随机选择的框中。为清楚起见:假设有四个.answer类(该程序将要采取四个答案),total_questions和答案是= 10.
function getRandom(limit) {
return Math.floor(Math.random() * limit )
}
$("#answers > .answer").each(function(i){
r = getRandom(total_questions);
$(this).text(answers[r])
});
答案 0 :(得分:0)
您的实施允许任何答案选项可以显示两次。您可能希望有一个迭代问题的外部迭代器,然后在其中包含答案迭代器。
问题迭代器可以包含一个包含每个选定答案选项的数组(在对新问题进行操作时会重置)。选择的每个答案选项都可以放在数组中,并且可以在每个答案迭代中检查数组,以确保所选答案不存在(如果是,则继续选择直到不存在)
如果没有多个问题,那么您可以将我在“问题迭代器”中描述的所有内容放在全局范围内。
编辑要解决包含正确答案的问题,您可能需要生成介于0和n-1之间的随机数,其中n是该问题的答案选项数。然后,如果返回的数字是0(或该范围内的任何整数),则插入正确的答案。否则,选择另一个答案。
编辑2:如果在问题的最后一次回答迭代中未选择正确答案(如果正确答案不在问题的所选答案选择数组中),则应该插入答案。