[原创]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 插件学习(三)
Aug 06 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
js实现下拉框效果(select)
Mar 28 Javascript
angular.js+node.js实现下载图片处理详解
Mar 31 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
微信小程序图表插件wx-charts用法实例详解
May 20 Javascript
JS数组Object.keys()方法的使用示例
Jun 05 Javascript
JS实现鼠标按下拖拽效果
Jul 23 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/12/06 PHP
php汉字转拼音的示例
2014/02/27 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP反射学习入门示例
2019/06/14 PHP
为数据添加append,remove功能
2006/10/03 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
解决Python的str强转int时遇到的问题
2018/04/09 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Python 实现向word(docx)中输出
2020/02/13 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
英文请假条
2014/04/11 职场文书
教师调动申请报告
2015/05/18 职场文书
培训计划通知
2015/07/15 职场文书
班主任寄语2016
2015/12/04 职场文书
关于职业道德的心得体会
2016/01/18 职场文书