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中Array 对象相关的几个方法
Dec 22 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
May 21 Javascript
js局部刷新页面时间具体实现
Jul 04 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
jQuery手指滑动轮播效果
Dec 22 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
JS实现简单获取最近7天和最近3天日期的方法
Apr 18 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
微信小程序上线发布流程图文详解
May 06 Javascript
vue项目,代码提交至码云,iconfont的用法说明
Jul 30 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
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
angular分页指令操作
2017/01/09 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
vue实现axios图片上传功能
2019/08/20 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python实现登录接口的示例代码
2017/07/21 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
骨干教师培训制度
2014/01/13 职场文书
入学申请自荐信范文
2014/02/26 职场文书
元旦晚会感言
2014/03/12 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
工作时间调整通知
2015/04/24 职场文书
妇产科护理心得体会
2016/01/22 职场文书
2019军训心得体会
2019/06/27 职场文书