色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 生成不重復(fù)的隨機(jī)數(shù)

隨機(jī)數(shù)在計(jì)算機(jī)編程中扮演著重要的角色,JavaScript也不例外。在一些應(yīng)用場(chǎng)景中,我們可能希望生成一組不重復(fù)的隨機(jī)數(shù),來(lái)保證數(shù)據(jù)的唯一性或更好地模擬某些實(shí)際問(wèn)題。本文將介紹一些常用的方法來(lái)實(shí)現(xiàn)JavaScript生成不重復(fù)的隨機(jī)數(shù)。

首先,我們可以利用數(shù)組的方式來(lái)實(shí)現(xiàn)不重復(fù)隨機(jī)數(shù)的生成。具體實(shí)現(xiàn)方法為:將要生成的隨機(jī)數(shù)依次存入數(shù)組中,當(dāng)下次生成隨機(jī)數(shù)時(shí),判斷數(shù)組中是否已經(jīng)存在該數(shù),若不存在,則將該數(shù)存入數(shù)組中。下面是一段示例代碼:

let nums = []; // 用于存儲(chǔ)生成的隨機(jī)數(shù)
while (nums.length< 10) { // 生成10個(gè)不重復(fù)的隨機(jī)數(shù)
let num = Math.floor(Math.random() * 100); // 生成0-100的隨機(jī)數(shù)
if (nums.indexOf(num) === -1) { // 判斷數(shù)組中是否已經(jīng)存在該數(shù)
nums.push(num); // 將該數(shù)存入數(shù)組中
}
}
console.log(nums); // [51, 42, 98, 16, 30, 79, 5, 48, 68, 12]

上述代碼中,我們使用了while循環(huán)來(lái)不斷生成隨機(jī)數(shù),利用數(shù)組的indexOf方法判斷該數(shù)是否已經(jīng)存在于數(shù)組中,并使用push方法將該數(shù)存入數(shù)組中。最后輸出生成的不重復(fù)隨機(jī)數(shù)。

另外,我們還可以使用另外一種方法來(lái)生成不重復(fù)的隨機(jī)數(shù),即使用一個(gè)map對(duì)象來(lái)存儲(chǔ)已經(jīng)生成的隨機(jī)數(shù),以保證每次生成的隨機(jī)數(shù)不重復(fù)。示例代碼如下:

let nums = new Map(); // 用于存儲(chǔ)生成的隨機(jī)數(shù)
while (nums.size< 10) { // 生成10個(gè)不重復(fù)的隨機(jī)數(shù)
let num = Math.floor(Math.random() * 100); // 生成0-100的隨機(jī)數(shù)
if (!nums.has(num)) { // 判斷map對(duì)象中是否已經(jīng)存在該數(shù)
nums.set(num, true); // 將該數(shù)存入map對(duì)象中
}
}
console.log(Array.from(nums.keys())); // [27, 1, 59, 0, 48, 30, 73, 37, 94, 16]

上述代碼中,我們使用了Map對(duì)象來(lái)存儲(chǔ)已經(jīng)生成的隨機(jī)數(shù),其中map的key值為生成的隨機(jī)數(shù),value值可以為任意非空值。當(dāng)判斷map對(duì)象中不存在該數(shù)時(shí),將該數(shù)存入Map對(duì)象中。最后通過(guò)Map對(duì)象的keys方法,將所有的key值轉(zhuǎn)換為數(shù)組輸出。

在實(shí)際應(yīng)用中,我們可以根據(jù)需要選擇使用哪種方式來(lái)生成不重復(fù)隨機(jī)數(shù)。無(wú)論采用何種方式,我們都可以通過(guò)一定的代碼實(shí)現(xiàn)來(lái)達(dá)到目的。