[原创]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 相关文章推荐
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
javascript实现点击提交按钮后显示loading的方法
Jul 03 Javascript
谈一谈javascript闭包
Jan 28 Javascript
总结Node.js中的一些错误类型
Aug 15 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
Jun 11 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 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 验证码实例代码
2010/06/01 PHP
php中session使用示例
2014/03/29 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
js下弹出窗口的变通
2007/04/18 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python中encode()方法的使用简介
2015/05/18 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
使用python绘制二维图形示例
2019/11/22 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
Django实现简单的分页功能
2021/02/22 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
单位消防安全制度
2014/01/12 职场文书
学生感冒英文请假条
2014/02/04 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
大跃进口号
2014/06/16 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书