[原创]js获取数组任意个不重复的随机数组元素


Posted in Javascript onMarch 15, 2010
<script language="javascript"> 
//从一个给定的数组arr中,随机返回num个不重复项 
function getArrayItems(arr, num) { 
//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; 
var temp_array = new Array(); 
for (var index in arr) { 
temp_array.push(arr[index]); 
} 
//取出的数值项,保存在此数组 
var return_array = new Array(); 
for (var i = 0; i<num; i++) { 
//判断如果数组还有可以取出的元素,以防下标越界 
if (temp_array.length>0) { 
//在数组中产生一个随机索引 
var arrIndex = Math.floor(Math.random()*temp_array.length); 
//将此随机索引的对应的数组元素值复制出来 
return_array[i] = temp_array[arrIndex]; 
//然后删掉此索引的数组元素,这时候temp_array变为新的数组 
temp_array.splice(arrIndex, 1); 
} else { 
//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项. 
break; 
} 
} 
return return_array; 
} 
//测试 
var my_array = new Array(); 
for (i = 0; i < 20; i++) 
{ 
my_array[i] = "Num:"+i; 
} 
my_array = getArrayItems(my_array,5); 
for (i = 0; i < my_array.length; i++) 
{ 
alert(my_array[i]); 
} 
</script>
Javascript 相关文章推荐
js实现简单模态窗口,背景灰显
Nov 14 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
Feb 28 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
angular指令笔记ng-options的使用方法
Sep 18 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
js实现秒表计时器
Dec 16 Javascript
JavaScript架构localStorage特殊场景下二次封装操作
Jun 21 Javascript
javascript实现的在当前窗口中漂浮框的代码
Mar 15 #Javascript
javascript 用记忆函数快速计算递归函数
Mar 15 #Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
Mar 15 #Javascript
javascript css styleFloat和cssFloat
Mar 15 #Javascript
javascript 嵌套的函数(作用域链)
Mar 15 #Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 #Javascript
JQuery 常用操作代码
Mar 14 #Javascript
You might like
PHP在Web开发领域的优势
2006/10/09 PHP
一段防盗连的PHP代码
2006/12/06 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
Python实现股市信息下载的方法
2015/06/15 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
python序列化与数据持久化实例详解
2019/12/20 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
公司授权委托书范本
2014/09/18 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书