js 获取可重复的随机数

js 获取可重复的随机数,第1张

<script>

var arr=new Array(4);

for(i=0;i<arrlength;i++)

arr[i]=parseInt(Mathrandom()10);

var flag=0;

for(i=0;i<arrlength-1;i++){

for(j=i+1;j<arrlength;j++){

if(arr[i]==arr[j]){flag=1;break;}

}

if(flag)break;

}

alert(arr+"\n"+(flag"重复":"不重复"));

</script>

function getArrayItems(arr, num) { 

//新建一个数组,将传入的数组复制过来,用于运算,而不要直接 *** 作传入的数组; 

var temp_array = new Array(); 

for (var index in arr) { 

temp_arraypush(arr[index]); 

//剔除一些数字

//取出的数值项,保存在此数组 

var return_array = new Array(); 

for (var i = 0; i

//判断如果数组还有可以取出的元素,以防下标越界 

if (temp_arraylength>0) { 

//在数组中产生一个随机索引 

var arrIndex = Mathfloor(Mathrandom()temp_arraylength); 

//将此随机索引的对应的数组元素值复制出来 

return_array[i] = temp_array[arrIndex]; 

//然后删掉此索引的数组元素,这时候temp_array变为新的数组 

temp_arraysplice(arrIndex, 1); 

} else { 

//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项 

break; 

return return_array; 

}

var my_array = new Array(); 

for (i = min; i < max; i++) //max,min指定范围

my_array[i] = i; 

my_array = getArrayItems(my_array,1000); //得到数组

  function rand(u,d){

    ++d;

    return parseInt(Mathrandom()(u-d)+d);

  }

var backgroundColorArray = ["red","green","violet","peachy","brown","blue"];

var backgroundColor = "t-"+ backgroundColorArray[Mathfloor(Mathrandom()5)];

var backgroundPic = "t-pattern-"+Mathfloor(Mathrandom()9+1);

documentbodyclassName = backgroundColor + " " + backgroundPic ;

基础知识:

复制数组:

(1)循环遍历复制(不推荐)

复制代码

代码如下:

var

arry

=

[1,5,9,7],

new_arry

=

[],

n

=

0,

len

=

arrylength;

for(;n<len;n++){

new_arrypush(arry[n]);

}

(2)concat()

方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

复制代码

代码如下:

var

arry

=

[1,5,9,7],

new_arry

=

arryconcat();

consolelog(new_arry);

(3)slice()

方法可从已有的数组中返回选定的元素

复制代码

代码如下:

var

arry

=

[1,5,9,7],

new_arry

=

arryslice(0);

consolelog(new_arry);

随机数

Mathrandom()

Mathrandom(),返回0到1的随机数,如:04261967441998422

个人封装函数:

复制代码

代码如下:

function

getRandom(opt)

{

var

old_arry

=

optarry,

range

=

optrange;

//防止超过数组的长度

range

=

range

>

old_arrylengthold_arrylength:range;

var

newArray

=

[]concat(old_arry),

//拷贝原数组进行 *** 作就不会破坏原数组

valArray

=

[];

for

(var

n

=

0;

n

<

range;

n++)

{

var

r

=

Mathfloor(Mathrandom()

(newArraylength));

valArraypush(newArray[r]);

//在原数组删掉,然后在下轮循环中就可以避免重复获取

newArraysplice(r,

1);

}

return

valArray;

}

var

new_val

=

getRandom({'arry':[1,6,8,0,3],'range':3});

consolelog(new_val);

是不是很好用呢,非常实用的代码,这里是从本人项目中分离出来分享给大家,希望对大家有所帮助。

// JS小菜鸟,大佬轻喷

Mathrandom(); //该方法产生一个0到1之间的浮点数。

Mathfloor(Mathrandom()10+1); //生成1-10的随机数

Mathfloor(Mathrandom()10);//生成0-9的随机数

// 最简单的方法是自己写个例子验证一下

for(var i=0;i<1000;i++){ 

    var j = Mathfloor(Mathrandom()100);

     if(j==90){

         consolelog(j);

     }

     if(j==100){

         consolelog(j);

     }

}

以上就是关于js 获取可重复的随机数全部的内容,包括:js 获取可重复的随机数、js 怎么获取指定范围内不重复的随机数、js 取多个随机数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9680786.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存