JS 在指定数组中随机取出N个不重复的数据


Posted in Javascript onJune 10, 2014
<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 ArrList=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33];
alert(getArrayItems(ArrList,6));
</script>
Javascript 相关文章推荐
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
JS 常用校验函数
Mar 26 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
js中apply和call的理解与使用方法
Nov 27 Javascript
vue 全局封装loading加载教程(全局监听)
Nov 05 Javascript
JS生成随机字符串的多种方法
Jun 10 #Javascript
json中换行符的处理方法示例介绍
Jun 10 #Javascript
Jquery焦点与失去焦点示例应用
Jun 10 #Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 #Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 #Javascript
iframe里的页面禁止右键事件的方法
Jun 10 #Javascript
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 #Javascript
You might like
谈一谈收音机的高放电路
2021/03/02 无线电
php中计算时间差的几种方法
2009/12/31 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php获取字段名示例分享
2014/03/03 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
python实现的简单窗口倒计时界面实例
2015/05/05 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
对pandas中to_dict的用法详解
2018/06/05 Python
pandas 时间格式转换的实现
2019/07/06 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
百度JavaScript笔试题
2015/01/15 面试题
请介绍一下WSDL的文档结构
2013/03/17 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
道路建设实施方案
2014/03/18 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js