一、基本思路:
建立一個數組存放所有可能取到的值,每次從該數組中隨機取走一個,放到新的數組中,直到完成。
二、實現方法
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; }