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 相关文章推荐
扩展javascript的Date方法实现代码(prototype)
Nov 20 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
jquery插件NProgress.js制作网页加载进度条
Jun 05 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
Javascript中的Prototype到底是什么
Feb 16 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
详解VUE单页应用骨架屏方案
Jan 17 Javascript
vue使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
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 循环列出目录内容的函数代码
2010/05/26 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
用ADODB.Stream转换
2007/01/22 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
python的pip有什么用
2020/06/17 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
一份比较全的PHP面试题
2016/07/29 面试题
文明餐桌行动实施方案
2014/02/19 职场文书
培训协议书范本
2014/04/22 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
军训拉歌口号
2014/06/13 职场文书
洗手间标语
2014/06/23 职场文书
防汛工作情况汇报
2014/10/28 职场文书
小学中等生评语
2014/12/29 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
第一书记观后感
2015/06/08 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Nginx进程调度问题详解
2021/09/25 Servers