[原创]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 贪吃蛇实现代码
Nov 22 Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
详谈javascript中的cookie
Jun 03 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
Vue中keep-alive组件作用详解
Feb 04 Javascript
vue实现简单加法计算器
Oct 22 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
第九节--绑定
2006/11/16 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
python中文编码问题小结
2014/09/28 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python抽取指定url页面的title方法
2018/05/11 Python
python爬取淘宝商品销量信息
2018/11/16 Python
详解python破解zip文件密码的方法
2020/01/13 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
医院财务人员岗位职责
2015/04/14 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
民事起诉书范本
2015/05/19 职场文书
Python基础之数据结构详解
2021/04/28 Python
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python