因为实验室每周需要三人来做报告,所以用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

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] + " ";

}

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] + " ";

}

}

btn.onclick = function () {

Begin();

}

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

java中随机抽取三人名字_JS实现随机抽取三人相关推荐

  1. java中控制反转_Java如何利用IOC控制反转的三种设计模式详解

    这篇文章主要为大家详细介绍了Java使用IOC控制反转的三种设计模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 对于许多开发人员来说,控制反演(IoC)都是一个模糊的概念,因为他们在现实世界中 ...

  2. JAVA中字符串倒序、判断名字中英文、判断手机号格式以及正则表达式应用

    将字符串倒序的三种写法 1.先定义字符串 hello-123-java中国 public static void main(String[] args) {//将字符串倒序String str = & ...

  3. java中的js是什么意思_js和java的区别是什么?

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. js(JavaScript)是一种直译式 ...

  4. Java中创建泛型数组

    Java中创建泛型数组 使用泛型时,我想很多人肯定尝试过如下的代码,去创建一个泛型数组 T[] array = new T[]; 当我们写出这样的代码时编译器会报Cannot create a gen ...

  5. Java NIO学习系列六:Java中的IO模型

    前文中我们总结了linux系统中的5中IO模型,并且着重介绍了其中的4种IO模型: 阻塞I/O(blocking IO) 非阻塞I/O(nonblocking IO) I/O多路复用(IO multi ...

  6. Java中的容器类List、Set、Map的对比

    好长时间没有更新博客了,因为这段时间开始学习Java编程思想这本书,希望可以对Java有一个更深入的了解,以便在处理android程序的时候,可以得心应手一些. 今天在看到Java中的容器时,发现了一 ...

  7. 在java中补零的作用是什么_浅谈Java中的补零扩展和补符号位扩展

    今天,魏屌出了一道题,题目如下: 定义一个大头序的byte[]a={-1,-2,-3,-4},转换成short[]b.问b[0]和b[1]分别是多少? 乍一看,这题不难,无非就是移位操作,再进行组合. ...

  8. Java中判断当前数据是否全为数字

    Java中判断当前数据是否全为数字 总共又三种方法 一.用JAVA自带的函数编写判断机制 二.用正则表达式编写判断机制 三.用ascii码编写判断机制 总共又三种方法 一.用JAVA自带的函数编写判断 ...

  9. java中的char_java中的char是什么意思?

    java中的char是什么意思? 发布时间:2020-05-15 23:12:27 来源:亿速云 阅读:360 作者:Leah java中的char是什么意思?除了程序员外大部分人都不太了解,今天小编 ...

  10. java字符乱码问题_怎么解决java中的字符乱码问题

    怎么解决java中的字符乱码问题 发布时间:2020-06-28 14:53:09 来源:亿速云 阅读:108 作者:Leah 怎么解决java中的字符乱码问题?相信很多没有经验的人对此束手无策,为此 ...

最新文章

  1. 经典算法书籍推荐以及算法书排行【算法四库全书】
  2. InnoDB与MyISAM引擎区别
  3. python爬虫爬取网页图片_Python爬虫实现抓取网页图片
  4. Java AOP研究之@Aspect注解的工作原理
  5. 【284天】我爱刷题系列(43)
  6. linux 线程同步消息队列,Linux 多线程同步之消息队列
  7. hdu5486 Difference of Clustering 暴力
  8. android studio单元测试插件,Android Studio单元测试插件下载
  9. 对视频播放url进行Blob加密
  10. 【线性模型引论】王松桂 课后习题2.1参考答案
  11. 队列元素逆置 数据结构 队列
  12. 国内根据IP地址查询具体位置
  13. 苹果手机使用计算机网络,苹果安卓手机使用usb共享网络给win10电脑的操作方法...
  14. 平板/笔记本亮度调节工具halo(WINDOWS)
  15. Beaglebone Black 和树莓派
  16. redis--bugger分析
  17. 虎年开工第一天,你实现下班自由了吗?
  18. 爬虫练习(二)—股票信息抓取
  19. 微信小程序 Page pages/Index/Index has not been registered yet.问题解决
  20. Android系统硬件访问服务框架分析

热门文章

  1. miui 谷歌框架_小米1MIUI开发版可用的google服务框架
  2. Python-GUI界面设计(tkinter)
  3. 系统建模与仿真项目驱动设计报告-基于MATLAB的GUI界面设计
  4. abaqus2021详细安装教程
  5. 【精读AI论文】inceptionV2 BN-inception Batch Normalization BN 批量标准化
  6. 几种“超强壮”的弱密码方案
  7. 信贷反欺诈场景中策略与模型的搭建|实操一大反欺诈模型
  8. 手把手带你玩转Spark机器学习-专栏介绍
  9. javaee之用户信息增删改查案例
  10. 呼叫中心系统okcc怎样防护盗打?