[原创]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计算页面执行时间的函数
Dec 07 Javascript
JS动画效果代码3
Apr 03 Javascript
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
Angular.js中上传指令ng-upload的基本使用教程
Jul 30 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
Jan 23 Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 Javascript
vue 基于element-ui 分页组件封装的实例代码
Dec 10 Javascript
详解JS预解析原理
Jun 16 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的远程图片抓取函数分享
2013/09/25 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
php编程每天必学之验证码
2016/03/03 PHP
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
对python生成业务报表的实例详解
2019/02/03 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
python 基于opencv实现图像增强
2020/12/23 Python
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
幼儿园师德演讲稿
2014/05/06 职场文书
小学生环保标语
2014/06/13 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
管理人员岗位职责
2015/02/14 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
小学中队委竞选稿
2015/11/20 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python