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 Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
Jul 13 Javascript
Jquery同辈元素选中/未选中效果的实例代码
Aug 01 Javascript
javascript 用函数语句和表达式定义函数的区别详解
Jan 06 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
功能强大的Bootstrap使用手册(一)
Aug 02 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
vue实现页面滚动到底部刷新
Aug 16 Javascript
vue使用watch监听属性变化
Apr 30 Vue.js
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二分查找二种实现示例
2014/03/12 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
Vue中插入HTML代码的方法
2018/09/21 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python的几种主动结束程序方式
2019/11/22 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
Python常用外部指令执行代码实例
2020/11/05 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
《阳光》教学反思
2014/02/23 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
招商引资工作汇报
2014/10/28 职场文书
小学语文教学反思范文
2016/03/03 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技