无论如何要做.. ..
var init = {
'questions': [
{
'question': 'jQuery is a...',
'answers': ['JavaScript library','Ruby Gem','PHP Framework','None of the above'],
'correctAnswer': 1
},
{
'question': 'X comes after?',
'answers': ['P','W','Y','v'],
'correctAnswer': 2
},
{
'question': 'Meh stands for..',
'answers': ['Eh','/Sigh','What?','Whatever'],
'correctAnswer': 4
}
] };
现在系统以编写方式向我显示问题。那么有什么方法可以随机显示这些问题?谢谢。
答案 0 :(得分:4)
你似乎想要这个:
var questions = init.questions;
var question = questions[Math.floor(Math.random()*questions.length)]
这为您提供了questions
数组的随机元素。
答案 1 :(得分:1)
这个问题有两个可能的角度;最初的问题并不清楚哪一个是(或可能两者),所以我将覆盖它们。
随机化显示问题的顺序。
在任何给定问题中随机化答案的顺序。
对于第一个问题 - 问题的随机顺序,假设所有问题都在数组中,我们只需要对数组进行洗牌。这是一项非常常见的任务,并且有许多代码示例可以演示如何执行此操作。我建议阅读这个问题的一些答案:How can I shuffle an array?
该问题的答案包括完全符合您需要的代码片段。
第二部分基本上是同一个问题,但由于需要跟踪哪个答案是正确答案,因此稍微复杂一些。
基本的shuffle会是相同的,但你需要有一些东西,每个答案都指向哪个是正确的,而不是指向数组键的单个单独的值。
因此,例如,您的问题数据可能如下所示:
{
'question': 'X comes after?',
'answers': [
{'answer':'P','correct':false},
{'answer':'W','correct':true},
{'answer':'Y','correct':false},
{'answer':'v','correct':false}
]
},
现在很容易在问题的答案上使用相同的shuffle技术,而不会忘记哪个答案是正确的。
希望有所帮助。