[原创]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 相关文章推荐
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
Apr 24 Javascript
jQuery中.live()方法的用法深入解析
Dec 30 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
JavaScript基本语法学习教程
Jan 14 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
Feb 18 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
Mar 22 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
vue键盘事件点击事件加native操作
Jul 27 Javascript
我所理解的JavaScript中的this指向
Sep 04 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 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图片验证码制作实现分享(全)
2012/05/10 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
Yii快速入门经典教程
2015/12/28 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
详解vue v-model
2020/08/31 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
python字符串连接方法分析
2016/04/12 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
python如何修改文件时间属性
2021/02/05 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
东方电视购物:东方CJ
2016/10/12 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
毕业生求职信的经典写法
2014/01/31 职场文书
一月红领巾广播稿
2014/02/11 职场文书
建筑投标担保书
2014/05/20 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js