人果然是不能懒惰的,该动脑的时候就不能省,在随机数去重问题困扰我许久之后,终于在今日,我下定决心认真看一下去重问题,研究了一下发现其实简单的去重并不难,所以极其不理解前一段的我为什么迟迟不肯看一眼…

算了,我们还是来记录一下代码吧~~~
就写一个简单到爆的点名吧,主要是这个思路,有差不多的用途的话,自己改一改就能用到自己的代码上了!

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/quchong.js"></script>
</head>
<style>.ks {width: 200px;height: 200px;margin: 100px auto;line-height: 200px;text-align: center;background-color: pink;color: white;}.button {width: 100px;height: 30px;margin: 0 auto;line-height: 30px;text-align: center;background-color: #0084FF;color: white;cursor: pointer;}
</style>
<body><div class="ks"></div><div class="button">点名</div>
</body>
</html>

由于很简单,并且主要实现js,css我就不代码分离了,直接写html里了

//名字数组  随机数数组
var nameArr;
var newArr = [];
//元素对象
var ks;
var button;
//加载事件  为了获取到元素对象
window.onload = function () {//赋值 存要随机的名字nameArr = ["百里守约", "孙悟空", "紫霞", "安琪拉", "妲己"];//获取元素对象ks = document.querySelector(".ks");//设置初始内容ks.innerHTML = "点击下方按钮开始";//获取元素对象button = document.querySelector(".button");//绑定点击事件button.onclick = function () {//调用自定义的 随机数去重函数 返回值作为nameArr数组下标 取出相应名字 放在ks盒子的内容区域ks.innerHTML = nameArr[arf()];}
}function arf() {//判断newArr数组长度 ===0 可能是初始 或者 名字随机一轮了,把nameArr数组的下标存到newArr数组里if (newArr.length === 0) {for (var i = 0; i < nameArr.length; i++) {newArr[newArr.length] = i;}}//生成随机数 范围:0-nameArr数组的长度var num = Math.floor(Math.random() * nameArr.length);//去重   不知会循环多少次 用whilewhile (1) {//在newArr里有和num对应的数if (newArr.indexOf(num) !== -1) {//就删掉newArr数组中和num一样的数newArr.splice(newArr.indexOf(num), 1);// 结束循环break;} else {//没有找到num对应的数 就再重新生成随机数num = Math.floor(Math.random() * nameArr.length);//循环继续 接着判断continue;}}//返回这个不会重复的随机数return num;
}
}

初始的样子

点击按钮点名,没做效果,直接把结果显示出来

好了,就这样,还有一句话,有问题一定及时解决,否则可能会困扰良久,极其难受,共勉!

JavaScript简单随机数去重相关推荐

  1. 对随机数去重并进行排序 java

    对随机数去重并进行排序 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余 ...

  2. 通过JavaScript简单的操作DOM(一)

    通过JavaScript简单的操作DOM (一)简单的前提概念 1.DOM简介 DOM,文档对象模型.描述了HTML和XML文档结构,然后提供API,来帮助开发人员添加.删除.修改页面的某一部分. ( ...

  3. 题库练习2(随机数去重排序、分割字符串、进制转换)

    1. 随机数去重排序 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉 ...

  4. html判断用户名的合法性,javascript简单判断输入内容是否合法的方法

    本文实例讲述了javascript简单判断输入内容是否合法的方法.分享给大家供大家参考,具体如下: 关于检测用户输入的内容是否有非法的字符检测实现思路 1.定义合法的字符串(源字符串) 2.获取用户输 ...

  5. JavaScript中数组去重汇总

    1. 简单的去重方法,利用数组的indexOf下标属性来查询 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ func ...

  6. Python JavaScript 的数组去重

    "数组去重" 是实际应用中常用的操作,出现在面试题中的概率也很高,今天简述一下 Python 和 JavaScript 中数组去重的方法 python数组去重 >>&g ...

  7. 利用Html,Css,javaScript简单写一个计算一天秒的倒计时

    利用Html,Css,javaScript简单写一个计算一天还剩多少秒的倒计时页面 代码我放下面,不多,就是我那个背景图我没有用精灵图,主要拼接太麻烦了,我直接img了,然后display:none; ...

  8. JavaScript简单版计算器

    JavaScript简单版计算器 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

  9. 简单下拉菜单html,JavaScript简单下拉菜单实例代码

    本文实例讲述了JavaScript简单下拉菜单实例代码.分享给大家供大家参考.具体如下: 这是一款JavaScript实现的下拉菜单演示代码,带渐变效果的CSS+jQuery菜单,向下滑出型的菜单,最 ...

最新文章

  1. sqlserver导入excel的电话号码(身份证)变为科学计数解决方式
  2. Oracle的基本操作(一:子查询与常用函数)
  3. WS-Addressing 了解
  4. apriori算法c++_使用Apriori进行关联分析
  5. python 模板匹配对比
  6. Flutter混合开发:Android中如何启动Flutter
  7. 蓝桥杯 ADV-144 算法提高 01背包
  8. java stream foreach_Java 8 Lambda Stream forEach具有多个语句
  9. treeselect 如何选中多个_转pdf后出现word没有的形状——对象选择窗格(同时选择多个形状、图形)...
  10. Routeros2.9.7安装总结
  11. AT指令:AT+CMGF
  12. Snap7 西门子S7系列PLC的通信库 简介
  13. linux操作系统实用教程课后答案,Linux操作系统案例教程课后习题答案
  14. Python 数据分析微专业课程--项目实战09 房价影响因素挖掘
  15. 基于SPSS的正态性检验方法汇总——以个股收益率为例(超详细)
  16. python实现杨辉三角的规律_Python实现杨辉三角算法
  17. 关于Keil debug 出现cannot access target shutting down debug session 错误提示
  18. java native函数库_Java 层调用 Native 层函数的两种方式
  19. Mac Ports的安装和卸载
  20. 2022上半年系统集成项目管理师客观题参考答题解析(1)

热门文章

  1. 向量代数与空间解析几何
  2. 长篇幅详解辐射定标、大气校正、监督分类、掩膜统计、植被覆盖度操作
  3. datagirdview的单元格双击事件
  4. 第五章 SQL定义表(一)
  5. 神舟战神笔记本怎么U盘装Win10系统教学
  6. 云豹短视频app源码中关于php--thinkcmf配置语言包的说明
  7. html怎么给图片加个叉,html+css 图片右上角加删除叉,图片删除
  8. MySQL 主从复制类型及详解
  9. java二维数组添加数据_我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊...
  10. vscode c#代码格式化