1. 程式人生 > >js隨機數1到10生成不重複的

js隨機數1到10生成不重複的

以下生成 0-9的隨機數

Math.floor(Math.random()*10);

需要1-10,將運算結果+1即可。

若要生成不重複的隨機數,可以用陣列儲存已經生成的數,新生成的資料若不在陣列中就滿足條件。。

var arr = [1,2,3,4,5];
function getNumNoRepeat() {
    var maxTimes = 20;
    do{
        var num = Math.floor(Math.random()*10)+1;
        if(-1 == arr.indexOf(num)){//陣列中不存在
arr.push(num);
            return 
num; } maxTimes--; }while (maxTimes); } console.log(getNumNoRepeat());
  • arr 應該定義在一個不隨頁面重新整理地方,比如說localstorage
  • maxTimes 必須存在,是因為所有隨機數如果都存入了陣列,迴圈就死迴圈了