[原创]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 相关文章推荐
用javascript实现读取txt文档的脚本
Jul 20 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
Dec 25 Javascript
BootStrap创建响应式导航条实例代码
May 31 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
谈谈JS中的!!
Dec 07 Javascript
基于JavaScript实现简单的音频播放功能
Jan 07 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
Aug 04 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 Javascript
js实现秒表计时器
Dec 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
简单上手Python中装饰器的使用
2015/07/12 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
Python如何进行时间处理
2020/08/06 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
实习生岗位职责
2014/04/12 职场文书
企业负责人任命书
2014/06/05 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书