[原创]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 相关文章推荐
javawscript 三级菜单的实现原理
Jul 01 Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 Javascript
jQuery选择器全面总结
Jan 06 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
JavaScript数据类型详解
Apr 01 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 Javascript
深入理解JavaScript中的并行处理
Sep 22 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
js禁止Backspace键使浏览器后退的实现方法
Sep 01 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
php动态读取数据清除最右边距的方法
2017/04/12 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
python生成密码字典的方法
2018/07/06 Python
Python print不能立即打印的解决方式
2020/02/19 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
求职简历自荐信
2013/10/20 职场文书
社团文化节策划书
2014/02/01 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
如何写股份合作协议书
2014/09/11 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
常住证明范本
2015/06/23 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python