[原创]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 相关文章推荐
根据分辨率不同,调用不同的css文件
Aug 25 Javascript
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
利用JS来控制键盘的上下左右键(示例代码)
Dec 14 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 Javascript
Jquery搜索父元素操作方法
Feb 10 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
May 28 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 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 header示例代码(推荐)
2010/09/08 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
ECMAScript 基础知识
2007/06/29 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
python爬取youtube视频的示例代码
2021/03/03 Python
安全检查与奖惩制度
2014/01/23 职场文书
消防应急演练方案
2014/02/12 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
党校党性分析材料
2014/12/19 职场文书
五好家庭申报材料
2014/12/20 职场文书
学期个人工作总结
2015/02/13 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
golang中的并发和并行
2021/05/08 Golang
background-position百分比原理详解
2021/05/08 HTML / CSS