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 相关文章推荐
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
Nov 30 Javascript
再次分享18个非常棒的jQuery表格插件
Apr 10 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
jquery制作漂亮的弹出层提示消息特效
Dec 23 Javascript
js HTML5上传示例代码完整版
Oct 10 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
Vue+Element使用富文本编辑器的示例代码
Aug 14 Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
Javascript模块化机制实现原理详解
Apr 02 Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 Javascript
javascript实现计算器功能详解流程
Nov 01 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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php计算一个文件大小的方法
2015/03/30 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
使用Angular CLI生成路由的方法
2018/03/24 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Python中使用动态变量名的方法
2014/05/06 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
考试不及格检讨书
2014/01/09 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
安全教育演讲稿
2014/05/09 职场文书
国庆节演讲稿
2014/05/27 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python