[原创]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/jquery写的一个定制对话框控件
May 02 Javascript
多个$(document).ready()的执行顺序实例分析
Jul 26 Javascript
JavaScript数据类型详解
Apr 01 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
Vuex mutitons和actions初使用详解
Mar 04 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
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利用反射实现插件机制的方法
2015/03/14 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
利用Python获取操作系统信息实例
2016/09/02 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
python字符串的方法与操作大全
2018/01/30 Python
django模板结构优化的方法
2019/02/28 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
Python print不能立即打印的解决方式
2020/02/19 Python
基于Python绘制个人足迹地图
2020/06/01 Python
如何在pycharm中安装第三方包
2020/10/27 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
聚美优品恶搞广告词
2014/03/14 职场文书
企业标语大全
2014/07/01 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript
JavaScript实现音乐播放器
2022/08/14 Javascript