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 相关文章推荐
jquery下操作HTML控件的实现代码
Jan 12 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
Apr 18 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
详解超简单的react服务器渲染(ssr)入坑指南
Feb 28 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
js实现删除json中指定的元素
Sep 22 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
php文件系统处理方法小结
2016/05/23 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python读取并写入mat文件的方法
2019/07/12 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
python 8种必备的gui库
2020/08/27 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
最新大学生创业计划书写作攻略
2014/04/02 职场文书
留学经费担保书
2014/05/12 职场文书
初中新生军训方案
2014/05/13 职场文书
入党推优材料
2014/06/02 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
出纳岗位职责范本
2015/03/31 职场文书
教师节倡议书2015
2015/04/27 职场文书
英语读书笔记
2015/07/02 职场文书
高中开学感言
2015/08/01 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书