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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
基于javascript实现全屏漂浮广告
Mar 31 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
Mar 06 Javascript
微信小程序select下拉框实现源码
Nov 08 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 Javascript
详解Vite的新体验
Feb 22 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
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
php中curl使用指南
2015/02/05 PHP
PHP文件操作方法汇总
2015/07/01 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php中的异常和错误浅析
2017/05/03 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python 获取字符串MD5值方法
2018/05/29 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
销售高级职员求职信
2013/10/29 职场文书
初中美术教学反思
2014/01/29 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
医学检验专业自荐信
2014/09/18 职场文书
高二英语教学反思
2016/03/03 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python