JS实现随机抽取三人


Posted in Javascript onNovember 06, 2019

因为实验室每周需要三人来做报告,所以用JS来做一个随机抽取的页面。

首先,先说一下需求。研二同学共5人,一人是单独的一组,研一同学共9人,同时九人分为三组。所以共八组,每周报告的三人从八组中抽取,这三人不能有两人或者两人以上在同一组。

程序思路1

1.将研一的三组建成三个小的数组,从这三个数组里每组随机抽取一人;
2. 将第一步里抽取出来的三人和研二的五人放在一起,组成一个新的数组,在从中随机抽取三人;
3. 若随机抽取的三人存在上述情况,则返回第一步,重新随机抽取,直到不存在第二步的情况,然后输出;

程序思路2

将实验室所有人放在一个大的数组里,先从数组里随机抽取三人;
将研一的三组建成三个小的数组,把随机抽取出来的三人去循环判断是否存在两人或者两人以上在同一组;

最后实现

本来以为思路一比较好做,做到后面发现判断是否同一组再重新进行函数运行,总是出现问题,选出来的三个人通过for循环去判断,理论可以但是却不能实现,还需要我再仔细想想。思路一程序如下

for (var i=0;i<3;i++) {
  index1 = Math.round(Math.random()*(array.length-1));
  value = array[index1];

  newarray.push(value);
  array.splice(index1,1);

  value ='';
 }
 console.log(newarray);

 for (var j =0;j<newarray.length;j++) {
  for (var m = 0; m < arr1.length; m++) {
   if (newarray[j] === arr1[m]){
    num1++;
   }
  }
  for (var n = 0; n < arr2.length; n++) {
   if (newarray[j] === arr2[n]){
    num2++;
   }
  }
  for (var o = 0; o < arr3.length; o++) {
   if (newarray[j] === arr3[o]){
    num3++;
   }
  }
 }
 btn.onclick = function (){


 var id = setInterval(frame,500);
 function frame() {
  if (!flag) {
   clearInterval(id);
   flag=true;
  } else {
   Begin();
   document.getElementById("name").innerHTML="";
   for (var i = 0; i < newarray.length; i++) {
    document.getElementById("name").innerHTML += newarray[i] + "</br> ";

   }
   flag=false;
   newarray=[];
  }
 }

}

这里面还是存在一些问题,思路二可以正常实现,下面是思路二的程序:

function Begin() {
  num1 = Math.round(Math.random() * (arr4.length - 1));
  num2 = Math.round(Math.random() * (arr4.length - 1));
  num3 = Math.round(Math.random() * (arr4.length - 1));
  Begin2();
 }

 function Begin2() {
  var array = [];
  var arrayLast = [];
  if (num1 !== num2 && num1 !== num3 && num2 !== num3) {
   array.push(num1);
   array.push(num2);
   array.push(num3);
   for (var i = 0; i < array.length; i++) {
    if (typeof arr4[array[i]] === "string") {
     arrayLast.push(arr4[array[i]]);
    } else {
     var num4 = Math.round(Math.random() * (arr4[array[i]].length - 1));
     arrayLast.push(arr4[array[i]][num4]);
    }
   }
  } else {
   Begin();
  }

  console.log(arrayLast);
  document.getElementById("name").innerHTML="";
  for (var i = 0; i < arrayLast.length; i++) {
   document.getElementById("name").innerHTML += arrayLast[i] + "</br> ";
  }
 }

 btn.onclick = function () {
  Begin();

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - Menu菜单
Oct 03 Javascript
javascript之Partial Application学习
Jan 10 Javascript
使用jQuery实现的掷色子游戏动画效果
Mar 14 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
JS实现重新加载当前页面
Nov 29 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
js判断手机系统是android还是ios
Mar 07 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
Jan 23 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
微信小程序动态增加按钮组件
Sep 14 Javascript
Node对CommonJS的模块规范
Nov 06 #Javascript
VUE 组件转换为微信小程序组件的方法
Nov 06 #Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 #Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 #Javascript
js+html实现点名系统功能
Nov 05 #Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 #Javascript
在Vue mounted方法中使用data变量详解
Nov 05 #Javascript
You might like
php不用正则采集速度探究总结
2008/03/24 PHP
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
javascript函数库-集合框架
2007/04/27 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
学生处主任岗位职责
2013/12/01 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
民生工作实施方案
2014/05/31 职场文书
师德模范事迹材料
2014/06/03 职场文书
学习保证书怎么写
2015/02/26 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
比较几种Redis集群方案
2021/06/21 Redis