JS生成不重复随机数组的函数代码

代码如下:

//获取数组中的随机数
//HF.Math.RandomNumbers是前缀,可以自己定义,主要看逻辑代码
HF.Math.RandomNumbers = function (startNum, endNum, count, repeat) {
    var ret = [];
    if (repeat) {
        for (var i = 0; i < count; i++) {
            ret[i] = HF.Math.Random(startNum, endNum);
        }
        return ret;
    }
    var tmp = [];
    var i = 0;
    for (var s = startNum; s <= endNum; s++) {
        tmp[i++] = s;
    }
    var l = tmp.length;
    for (i = 0; i < count; i++) {
        ret[i] = HF.Array.Remove(tmp, HF.Math.Random(0, --l));
    }
    return ret;
}

(0)

相关推荐

  • js实现从数组里随机获取元素

    基础知识: 复制数组: (1)循环遍历复制(不推荐) 复制代码 代码如下: var arry = [1,5,9,7],     new_arry = [],     n = 0,     len = arry.length; for(;n<len;n++){     new_arry.push(arry[n]); } (2)concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 复制代码 代码如下: var arry = [1,5,9,7],  

  • js 数组随机字符串(广告不重复)

    比较好的地方就是js数组的操作,不重复的数组id显示,完美实现. theAds=new Array(); shu =13; dot=''; theAds[1]='我们第一条'; theAds[2]='我们第二条'; theAds[3]='我们第三条'; theAds[4]='我们第四条'; theAds[5]='我们第五条'; theAds[6]='我们第六条'; theAds[7]='我们第七条'; theAds[8]='我们第八条'; theAds[9]='我们第九条'; theAds[10

  • 用js实现随机返回数组的一个元素

    复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- var test = ["aa","bb","cc","dd","ee"]; document.write(test[Math.floor(Math.random()*test.length)]); setInterval("location.reload()&quo

  • 从数组中随机取x条不重复数据的JS代码

    工作中经常遇到有关数组的一些操作 1. 从数据中随机取x条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) 复制代码 代码如下: /*从数组arr中随机取x条不重复的数据 */ function myRand(arr,num){    var newArr = [];    rand(num);    //随机 x 个 function rand(k){        if(k==0){            return;        }     

  • JS 在指定数组中随机取出N个不重复的数据

    复制代码 代码如下: <script language="javascript">//从一个给定的数组arr中,随机返回num个不重复项function getArrayItems(arr, num) {    //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;    var temp_array = new Array();    for (var index in arr) {        temp_array.push(arr[index]

  • js数组中如何随机取出一个值

    复制代码 代码如下: <html> <boby> </body> <script language="javascript"> window.onload = function(){ var arr = ["太阳光大.父母恩大.君子量大.小人气大","成功是优点的发挥,失败是缺点的累积","不要小看自己,因为人有无限的可能", "口说好话.心想好意.身行好事"

  • Javascript从数组中随机取出不同元素的两种方法

    一.常规算法 第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应该没有这个问题. 示例代码 /** 从数组中随机抽取数据 2016-09-09 **/ function getArrItem(arr, num) { var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } var return_array =

  • JS随机洗牌算法之数组随机排序

    推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列.举例来说,我们有一个如下图所示的数组,数组长度为 9,数组内元素的值顺次分别是 1~9: 从上面这个数组入手,我们要做的就是打乱数组内元素的顺序: 代码实现 维基百科上的 Fisher–Yates shuffle 词条对洗牌算法做了详细介绍,下面演示的算法也是基于其中的理论编写的: A

  • JavaScript数组随机排列实现随机洗牌功能

    本文实例讲述了JavaScript数组随机排列实现随机洗牌功能的方法.分享给大家供大家参考.具体分析如下: 这段JS代码可以对数组内的元素进行随机排列,这个非常有用,比如我们在玩扑克牌的时候可以让扑克牌进行排列,也就是电脑洗牌. var list = [1,2,3,4,5,6,7,8,9]; list = list.sort(function() Math.random() - 0.5); Print(list); // prints something like: 4,3,1,2,9,5,6,

  • js获取数组任意个不重复的随机数组元素 原创

    复制代码 代码如下: <script language="javascript"> //从一个给定的数组arr中,随机返回num个不重复项 function getArrayItems(arr, num) { //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } //取出的数值项,

随机推荐