[原创]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 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
iis6+javascript Add an Extension File
Jun 13 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
vue 表单之通过v-model绑定单选按钮radio
May 13 Javascript
JavaScript遍历数组和对象的元素简单操作示例
Jul 09 Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
Vue SPA 首屏优化方案
Feb 26 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
Content-type 的说明
2006/10/09 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
分享一个简单的python读写文件脚本
2017/11/25 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
列车长先进事迹材料
2014/01/25 职场文书
医学生自我评价
2014/01/27 职场文书
新书吧创业计划书
2014/01/31 职场文书
七匹狼男装广告词
2014/03/21 职场文书
生日宴会策划方案
2014/06/03 职场文书
建筑安全生产责任书
2014/07/22 职场文书
语文课外活动总结
2014/08/27 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
求职自我评价怎么写
2015/03/09 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python