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学习随笔(使用window和frame)的技巧
Mar 08 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 Javascript
简单理解vue中track-by属性
Oct 26 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
Jan 08 Javascript
详解jQuery事件
Jan 13 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
Vue3.0数据响应式原理详解
Oct 09 Javascript
原生JS实现多条件筛选
Aug 19 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中的正则表达式函数介绍
2012/02/27 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
js实现无缝轮播图
2020/03/09 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python最基本的输入输出详解
2015/04/25 Python
python模块导入的细节详解
2018/12/10 Python
Python字节单位转换实例
2019/12/05 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
python和JavaScript哪个容易上手
2020/06/23 Python
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
工作自荐信
2013/12/11 职场文书
成龙洗发水广告词
2014/03/14 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
员工入职担保书范文
2014/04/01 职场文书
股份合作协议书
2014/09/10 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
如何写辞职信
2015/05/13 职场文书
趣味运动会广播稿
2015/08/19 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python