[原创]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 模式设计之工厂模式详细说明
May 10 Javascript
分享几个超级震憾的图片特效
Jan 08 Javascript
ajax中get和post的说明及使用与区别
Dec 23 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
Apr 27 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
js实现楼层导航功能
Feb 23 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
浅谈手写node可读流之流动模式
Jun 01 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
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python编程中NotImplementedError的使用方法
2018/04/21 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
幼儿园教师培训制度
2014/01/16 职场文书
干部个人对照检查材料
2014/08/25 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
2016年情人节问候语
2015/11/11 职场文书
小学中队长竞选稿
2015/11/20 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
python在package下继续嵌套一个package
2022/04/14 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python