本文介绍一个JavaScript函数HF.Math.RandomNumbers,用于生成指定范围内的随机数组。该函数支持通过repeat参数控制是否允许元素重复。当允许重复时,直接随机取值;当要求不重复时,采用先构建完整序列再随机抽取并移除的方式,确保结果数组中无重复元素。
JavaScript生成不重复随机数组代码示例
实现代码如下:
// 获取数组中的随机数
// HF.Math.RandomNumbers是前缀,可以自定义,主要关注逻辑代码
HF.Math.RandomNumbers = function (startNum, endNum, count, repeat) {
var ret = [];
if (repeat) {
for (var i = 0; i < count; i++) {
ret[i] = HF.Math.Random(startNum, endNum);
}
return ret;
}
var tmp = [];
var i = 0;
for (var s = startNum; s <= endNum; s++) {
tmp[i++] = s;
}
var l = tmp.length;
for (i = 0; i < count; i++) {
ret[i] = HF.Array.Remove(tmp, HF.Math.Random(0, --l));
}
return ret;
}