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 相关文章推荐
JavaScript 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
jQuery添加和删除指定标签的方法
Dec 16 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
使用Vue 实现滑动验证码功能
Jun 27 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
js实现聊天对话框
Feb 08 Javascript
JS实现canvas简单小画板功能
Jun 23 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
main.php
2006/12/09 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
python 自动提交和抓取网页
2009/07/13 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
python日志模块logbook使用方法
2019/09/19 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
T3官网:头发造型工具
2019/12/26 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
幼儿园开学家长寄语
2014/01/19 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
生产文员岗位职责
2014/04/05 职场文书
工作简报怎么写
2015/07/21 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript