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 参考教程
Dec 29 Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
Jun 03 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
Vue.js手风琴菜单组件开发实例
May 16 Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
Vuex的API文档说明详解
Feb 05 Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
Sep 11 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以mysqli方式连接类完整代码实例
2014/07/15 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php实现socket推送技术的示例
2017/12/20 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
php7性能提升的原因详解
2019/10/13 PHP
asp 取文本框名称代码
2008/12/02 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
python文件拆分与重组实例
2018/12/10 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
初中军训感想300字
2014/03/05 职场文书
创建文明学校实施方案
2014/03/11 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
教师批评与自我批评
2014/10/15 职场文书
房屋租房协议书范本
2014/12/04 职场文书
项目验收申请报告
2015/05/15 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
如何书写邀请函?
2019/06/24 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
Python入门之使用pandas分析excel数据
2021/05/12 Python
详解 TypeScript 枚举类型
2021/11/02 Javascript
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL