欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 不重復隨機數

林國瑞1年前7瀏覽0評論

隨機數是JavaScript中的一項基本功能,通過隨機數,我們可以實現很多有趣的應用,比如生成密碼、抽獎、數據統計等等。但是,有時我們需要生成不重復的隨機數來避免重復操作,該如何實現呢?

舉個例子,假設我們需要生成10個不重復的隨機數,范圍在1到100之間。我們可以先生成一個隨機數,然后將其存入一個數組中,接著每次生成新的隨機數時,都判斷一下該數是否已經在數組中出現過,如果出現過,則再次生成新的隨機數,直到生成10個不重復數為止。

var arr = [], num = 0;
while(arr.length< 10){
num = Math.floor(Math.random()*100)+1;
if(arr.indexOf(num)< 0){
arr.push(num);
}
}
console.log(arr);

以上代碼中,我們使用了while循環,每次循環都會生成一個新的隨機數,然后判斷該數是否已經在數組中出現過,如果沒有出現過,則將其加入數組中。當數組長度達到10時,循環結束,輸出不重復的10個隨機數。

如果我們需要生成更多不重復的隨機數,該如何改進代碼呢?實際上,我們可以通過ES6中的Set對象來輕松實現。Set對象是一類值的集合,每一個值在集合中只能出現一次。因此,我們只需要不斷往Set對象中添加新的隨機數,直到Set中包含足夠的隨機數為止。

var set = new Set();
while(set.size< 100){
set.add(Math.floor(Math.random()*1000)+1);
}
console.log([...set]);

以上代碼中,我們使用Set對象來存儲隨機數,每次循環都會生成一個新的隨機數,然后將其加入Set對象中。當Set對象中包含了100個不重復的隨機數時,循環結束,我們可以使用ES6的擴展運算符將Set對象轉化為數組,便于輸出。

除了簡單的生成不重復隨機數,我們還可以利用Set對象來實現其他復雜的功能,比如篩選出數組中不重復的元素、求兩個數組的不重復交集等等。因此,熟練掌握Set對象的使用是JavaScript開發中不可或缺的一項技能。

總結來說,生成不重復的隨機數是JavaScript開發中的一項基本需求,在進行相關功能開發時,我們可以通過數組、Set對象等方式來實現。需要注意的是,隨機數的生成需要滿足隨機性和均勻性,因此在應用中需要遵循一定的規則,避免出現不必要的重復以及影響用戶體驗。