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 相关文章推荐
JS获取鼠标坐标的实例方法
Jul 18 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
May 12 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
Apr 05 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
vue slots 组件的组合/分发实例
Sep 06 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 Javascript
原生JS实现京东查看商品点击放大
Dec 21 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
使用PHP的日期与时间函数技巧
2008/04/24 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
php反射应用示例
2014/02/25 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
php四种定界符详解
2017/02/16 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
解javascript 混淆加密收藏
2009/01/16 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
讲解Python中fileno()方法的使用
2015/05/24 Python
Python程序暂停的正常处理方法
2019/11/07 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
python实现学生信息管理系统源码
2021/02/22 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
校班主任推荐信范文
2013/12/03 职场文书
《去年的树》教学反思
2014/04/11 职场文书
3分钟演讲稿
2014/04/30 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
教师节横幅标语
2014/10/08 职场文书