js隨機數1到10生成不重複的
阿新 • • 發佈:2019-01-07
以下生成 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 必須存在,是因為所有隨機數如果都存入了陣列,迴圈就死迴圈了