日期:2014-05-16  浏览次数:20426 次

求助:利用纯html+javascript实现随机抽取显示
1 一个智力问答页面,每次显示一个判断题,最多可以连续答10题。题目从固定的10个问题中随机抽出一个且不能重复。
2 问题只有两种答案,对或错,由用户点击选择
3 根据用户选择,显示“回答正确”或“回答错误”,并在下方显示详细说明
4 用户可以在答完一题后选择“继续答题”或“答题结束”
5 无需服务器交互数据,数据要自己做,所有问题以及答案说明都存放在javascript中


一个判断题,就要有3个要素“问题,答案,说明”
本人最早的思路是在js中用如下方法设置10次,但到了随机取的时候就混乱了
var question1=new Array("判断:1+1=2","对","说明:他就是等于2");

请大家帮帮忙,小弟实在对js中的数组不是很熟悉,感激不尽。

------解决方案--------------------
function rnd(min,max){
  var tmp=min;
  if(max<min){min=max;max=tmp;}
  return Math.floor(Math.random()*(max-min+1)+min);
}

function getTopic(){
  if(num>10){alert('已经做了10题鸟~~');return false;}
  num++;
   var idx=rnd(0,topics.length-1);
   return topics.splice(idx,1)//从题目中删除当前的项,遮掩高就不会出现重复题目了,并返回当前删除的项以便匹配
}
var topics=[
["判断:1+1=2","对","说明:他就是等于2"],
["判断:2+2=2","错","说明:他就是等于4"],
["判断:3+3=2","错","说明:他就是等于6"],
["判断:4+4=2","错","说明:他就是等于8"],
["判断:5+5=2","错","说明:他就是等于10"],
["判断:6+6=2","错","说明:他就是等于12"],
["判断:7+7=2","错","说明:他就是等于14"],
["判断:8+8=2","错","说明:他就是等于16"],
["判断:9+9=2","错","说明:他就是等于18"],
["判断:10+10=2","错","说明:他就是等于20"]
];
var num=1;
alert(getTopic());alert(getTopic());alert(getTopic());;alert(getTopic());alert(getTopic())
alert(getTopic());alert(getTopic());alert(getTopic());;alert(getTopic());alert(getTopic())
alert(getTopic())//false