[原创]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 08 Javascript
一个基于jquery的图片切换效果
Jul 06 Javascript
javascript之Partial Application学习
Jan 10 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
每天一篇javascript学习小结(基础知识)
Nov 10 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
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脚本数据库功能详解(上)
2006/10/09 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
express.js中间件说明详解
2019/03/19 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
职业生涯规划设计步骤
2014/01/12 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书