求助:利用纯html+javascript实现随机抽取显示

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


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

请大家帮帮忙,小弟实在对js中的数组不是很熟悉,感激不尽。
...全文
361 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
biyoutzx 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
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
感谢版主提供思路,问题已经解决,分数送上!
Go 旅城通票 2013-05-29
  • 打赏
  • 举报
回复
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
天际的海浪 2013-05-29
  • 打赏
  • 举报
回复
return arr.splice(~~(Math.random()*arr.length),1)

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧