如何添加一些随机性来填充此列表
How can I add some randomness to populating this list?
我正在尝试填充测验中的答案列表。正确的答案总是数据对象中的a0
。我怎么能让第一个答案不总是正确的呢?一个提示将不胜感激!
JS:
data = [
{"q":"How much?", "a0":"20%", "a1": "1%", "a2": "10%", "a3": "5%"},
{"q":"What", "a0":"Ball", "a1": "Stone", "a2": "Bierd", "a3": "Carl"},
{"q":"When?", "a0":"1999", "a1": "2000", "a2": "2001", "a3": "2002"}
];
function addData() {
var ids =['a','b','c','d'];
for (var j=0; j < ids.length; j++) {
//Populate answers into list
document.getElementById(ids[j]).innerHTML = data[q]['a'+j];
//Add class 'correct' to the li with the right answer (always a0 in the data object)
if (j==0) {
document.getElementById(ids[j]).setAttribute('class', 'correct');
}
};
}
HTML:
<ul class="answerswers_quiz">
<li id="a"></li>
<li id="b"></li>
<li id="c"></li>
<li id="d"></li>
</ul>
只需使用随机数对数组进行排序:
var ids =['a','b','c','d'];
ids.sort(function(x, y) {
return parseInt(Math.random() * ids.length);
});
for (var j=0; j < ids.length; j++) {
//.....
}
实时测试用例。(随机排序)
您可以生成一个随机数,并将其用作数组的位置,当然,始终验证其长度和您得到的数字。
你可以使用类似的东西生成一个随机数:
var randomnumber = Math.random();
您可以对数组进行随机排序,也可以按排序顺序进行排序。
你的数组是字符串数组,你的答案按字母顺序排列并不重要,所以你可以尝试按字母排序。
下面的例子是对字符串数组进行排序。
//Sort alphabetically and ascending:
var myarray=["Bob", "Bully", "Amy"]
myarray.sort() //Array now becomes ["Amy", "Bob", "Bully"]
//Sort alphabetically and descending:
var myarray=["Bob", "Bully", "Amy"]
myarray.sort()
myarray.reverse() //Array now becomes ["Bully", "Bob", "Amy"]
参考http://www.javascriptkit.com/javatutors/arraysort.shtml
现在,若你们想按它的索引排序,你们可以使用下面的。
function randomSort(a,b) {
return( parseInt( Math.random()*10 ) %2 );
}
var arlene = new Array( 1, 2, 3, 4, 5 );
alert( arlene.sort(randomSort).toString() );
参考http://freewebdesigntutorials.com/javaScriptTutorials/jsArrayObject/randomizeArrayElements.htm
这保持了答案的顺序,只改变了哪个是第一个。
在for循环之前做随机整数:CCD_ 2,则循环中的第一件事做CCD_ 3。使用data[q][idx]
而不是data[q]['a'+j]
,并将类设置为在idx=="a0"
而非j==0
时进行更正。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 如何让typeahead在我的搜索栏中填充自定义参数
- 如何使用JSON字符串中的jQuery填充下拉框
- 动态填充两个下拉菜单
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- spine.js在启动时填充模型实例
- 如何将要单独填充的每个HTML画布路径/形状分开
- CSS赢得't填充视图端口
- 从JSON填充列表(而不是HTML)
- Fabric.js-更改矩形填充
- 使用JSON文件中的变量(字符串)填充文本区域
- 如何添加一些随机性来填充此列表