ben*_*e89 47 javascript random
我需要生成一组唯一(无重复)整数,并且在0和给定数字之间.
那是:
var limit = 10;
var amount = 3;
Run Code Online (Sandbox Code Playgroud)
如何使用Javascript生成1到10之间的3个唯一数字?
Rob*_*b W 70
使用基本Math方法:
Math.random() 返回0到1之间的随机数(包括0,不包括1).围绕这个数字
Math.floor(Math.random()*10) + 1
Run Code Online (Sandbox Code Playgroud)例:
//Example, including customisable intervals [lower_bound, upper_bound)
var limit = 10,
amount = 3,
lower_bound = 1,
upper_bound = 10,
unique_random_numbers = [];
if (amount > limit) limit = amount; //Infinite loop if you want more unique
//Natural numbers than exist in a
// given range
while (unique_random_numbers.length < limit) {
var random_number = Math.floor(Math.random()*(upper_bound - lower_bound) + lower_bound);
if (unique_random_numbers.indexOf(random_number) == -1) {
// Yay! new random number
unique_random_numbers.push( random_number );
}
}
// unique_random_numbers is an array containing 3 unique numbers in the given range
Run Code Online (Sandbox Code Playgroud)
Lla*_*don 19
Math.floor(Math.random() * (limit+1))
Run Code Online (Sandbox Code Playgroud)
Math.random()生成一个介于0和1之间的浮点数,Math.floor()将其向下舍入为整数.
通过将其乘以数字,可以有效地使范围为0..number-1.如果您希望在num1到num2的范围内生成它,请执行以下操作:
Math.floor(Math.random() * (num2-num1 + 1) + num1)
Run Code Online (Sandbox Code Playgroud)
要生成更多数字,只需使用for循环并将结果放入数组或直接将其写入文档.
function generateRange(pCount, pMin, pMax) {
min = pMin < pMax ? pMin : pMax;
max = pMax > pMin ? pMax : pMin;
var resultArr = [], randNumber;
while ( pCount > 0) {
randNumber = Math.round(min + Math.random() * (max - min));
if (resultArr.indexOf(randNumber) == -1) {
resultArr.push(randNumber);
pCount--;
}
}
return resultArr;
}
Run Code Online (Sandbox Code Playgroud)
根据所需的范围,返回整数的方法可以更改为:ceil(a,b),round [a,b],floor [a,b),for(a,b)是添加1到min的问题地板.
| 归档时间: |
|
| 查看次数: |
83611 次 |
| 最近记录: |