我爱撸码,撸码使我感到快乐!
大家好,我是Counter。
今天给大家分享的是js模拟排队系统,刚开始有排队序列,序列里有vip用户和普通用户,vip用户永远位于普通用户的前面,只有当当前vip用户都办理好手续,才会叫号普通用户,每5秒产生一个随机客户。
效果如图:

代码给出:

// 函数的闭包,立即执行var autoPerson = (function () {// 定义vip用户和普通用户var vipNum = 0;var norNum = 0;return function () {// 随机产生vip或者普通用户var randomNum = Math.random();if ( randomNum > 0.5) {vipNum++;return "V" + vipNum;}else {norNum++;return "N" + norNum;}}})();// 定义一个排队数组,长度为6var personArr = [];var perLen = 6;for( var i = 0; i < perLen; i++) {// 每循环一次掉用函数vipFirst函数一次,传入参数,随机产生vip或者普通用户vipFirst(autoPerson());}// 对数组进行整合,如果当前传入的客户是VIP的话function vipFirst(person) {if ( person[0] == "V") {// 那么遍历现存的数组for( var i = 0; i < personArr.length; i++) {// 并且找出数组里普通用户所在的位置if ( personArr[i][0] == "N") {// splice数组方法,找到当前位置上的普通用户,0代表不删除,并在这个普通用户之前插入这位vip用户personArr.splice(i, 0, person);// 注意这边插入后,需返回,否则可能引起无限循环,重复插入,导致浏览器奔溃return;}}}// 如果当前的用户不是VIP用户的话,那么就按普通先到的用户排列personArr.push(person);}// 打印当前队列console.log("现存队列:" + personArr);// 设置一个计时器,每5秒执行一次var timer = setInterval(listMove, 5000);function listMove() {// 删除数组第一位,并将这个值返回给firstPervar firstPer = personArr.shift();// 打印出来当前叫号的客户console.log("叫号:" + firstPer);// 随机再来一个用户var newper = autoPerson();// 打印当前新来的客户编号console.log("新人:" + newper);// 将新来的客户如果是vip用户,就插入到普通用户前vipFirst(newper);// 再次打印当前的队列console.log("现存队形:" + personArr);}

利用JS模拟排队系统相关推荐

  1. 随机模拟在多排服务器上的应用,在Excel中应用随机函数模拟多服务台单队列排队系统...

    在Excel中应用随机函数模拟多服务台单队列排队系统 [摘 要] 计算机模拟是研究排队论问题的一个重要手段,可以选择的软件有很多,本文提出了一种基于Excel的简便方法.选用Excel中的随机函数,配 ...

  2. golang 模拟M/M/s排队系统损失率,泊松分布到达,指数分布服务

    golang模拟M/M/s排队系统损失率,到达流强度lambda,服务强度miu,理论损失率为:lambda/(lambda+miu) 本程序通过泊松分布和负指数分布模拟排队系统并计算损失率,结果与理 ...

  3. sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map)

    sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map) 这几天学习和查看了jQuery和Property这两个很流行的前端库的御用选择器组件Sizzle.js的源代码,收获还是相对多的!之 ...

  4. 利用mysql模拟银行转账_实践项目七:模拟银行转账系统(python+mysql)

    环境:ubutu 16.04 + python2.7 + mysql 5.7.19 最近学习python操作mysql数据库的知识,python访问数据库有自己的统一接口程序:Python DB AP ...

  5. 利用JAVA多线程模拟售票系统,对统一资源进行处理

    首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...

  6. java模拟电脑体育彩票的随机选号_利用JS来模拟体育彩票选号器

    利用JS来模拟体育彩票选号器_网页代码站(www.webdm.cn) function Quickpick() { var ball for( ball = 0; ball < 5; ball+ ...

  7. 利用matlab模拟光学简单空间滤波系统,空间滤波应用举例

    1906年为验证这一理论所做的实验,科学地说明了成像质量与系统传递的 空间频谱之间的关系 .1935年策尼克(Zenike)提出的相衬显微镜是空间滤波技术早期最成功的应用.... 第10章-空间滤波 ...

  8. 利用计算机对恒星做仿真,全国计算机等级考试模拟考试系统 上机模拟软件

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 全国计算机等级考试模拟考试系统 上机模拟软件 全国计算机等级考试模拟考试系统设计的仿真考试完全贴近真实环境,为考生创造身临考场的氛围,同时也对考试的各要点 ...

  9. 数据结构大作业——银行排队系统

    数据结构大作业--银行排队系统 离散事件模拟--银行业务处理 题目分析 声明部分 辅助函数 初始化窗口节点 创建顾客节点 比较四个窗口的排队人数 输出离开顾客的信息 主要函数 完整的头文件代码 离散事 ...

  10. dva ajax请求,dva框架使用mock.js模拟数据 + fetch请求数据

    what DVA? Dva是基于Redux做了一层封装,对于React的state管理,有很多方案,我选择了轻量.简单的Dva. dva 可以很方便就使用mock.js进行数据的模拟. 只需要三步,即 ...

最新文章

  1. LeetCode 51. N皇后
  2. web布局最实用的12条css技巧
  3. 便捷的flex弹性布局
  4. 阿里云朱照远:边缘计算,无处不在
  5. Aave 上线 AMM Market,允许 Uniswap 和 Balancer 的流动性提供商使用 LP 代币作为抵押品
  6. hbase shell删除一行_HBase安装phoenix实战shell操作
  7. 机器人走正方形c语言代码,张西臣---机器人走正方形
  8. 期权策略基准指数简介
  9. 快手调整员工福利,​减少房补,增加生育津贴;百度网盘青春版正式上线,被吐槽;雷军回应小米对标苹果遭冷嘲热讽 | EA周报...
  10. flutter 手机定位
  11. 通用滑块识别-通杀滑块
  12. 看完这篇招聘方法论,90%CEO会心痛
  13. ZZL字符串匹配算法
  14. 个人总结--关于学习过程中的一些经验心得分享
  15. 格式化代码 format.js
  16. 一条sql语句实现一维表生成二维表格
  17. node爬取app数据_使用node.js如何爬取网站数据
  18. 从心出发,华展云2.0荣耀发布
  19. 新华书店网上售书系统
  20. MP地面站二次开发教程(三)Mavlink通讯协议(3)地面站数据填充与显示

热门文章

  1. python apply函数的用法_python apply函数
  2. 银行招聘计算机考试时间,五大银行招聘考试时间是什么时候?
  3. macOS CLion 上搭建 GLFW + GLAD OpenGL开发环境
  4. 【舞女编程语言】:Ballerina 最新版和Ballerina Central
  5. 在MySQL数据库中进行模糊查询_如何实现mysql数据库单表的模糊查询?
  6. 记一个embed嵌入flash、mp4播放视频
  7. python怎么算反三角函数_反三角函数怎么算
  8. python 统计检验_常用统计检验的Python实现(附完整代码)
  9. ioctl()函数的简单使用——获取本机的IP、掩码、HWaddr
  10. 电脑开启wifi热点