js获取一组不重复的随机数的方法

时间:2023-12-11 16:24:38

一、基本思路:

建立一个数组存放所有可能取到的值,每次从该数组中随机取走一个,放到新的数组中,直到完成。

二、实现方法

1、方法一:

(1)创建一个数组arr,数组元素为所有可能出现的随机数的集合;

(2)通过num=Math.floor(Math.random()*num_total*first_value)方法获取一个随机数。

 随机数的范围为0-arr.length;(用来随机抽取arr任意位置的数组项)

(3)通过arr[num]获取数组该位置的元素,并push到目标数组;

(4)通过arr.splice(num,1)删除该元素;

(5)循环到(1)获取下一个随机数

完整写法为:

function roa(arr)    //arr为可能出现的元素集合
{
var temp=new array(); //temp存放生成的随机数组
  var count=arr.length;
for (i=0;i<count;i++)
{
var num=Math.floor(Math.random()*arr.length); //生成随机数num
temp.push(arr[num]); //获取arr[num]并放入temp
arr.splice(num,1);
}
return temp;
}