JS 随机算法合集
JS 打乱数组算法
js
function randArray(data) {
// 获取数组长度
var arrlen = data.length;
// 创建数组 存放下标数
var try1 = new Array();
for (var i = 0; i < arrlen; i++) {
try1[i] = i;
}
// 创建数组 生成随机下标数
var try2 = new Array();
for (var i = 0; i < arrlen; i++) {
try2[i] = try1.splice(Math.floor(Math.random() * try1.length), 1);
}
// 创建数组,生成对应随机下标数的数组
var try3 = new Array();
for (var i = 0; i < arrlen; i++) {
try3[i] = data[try2[i]];
}
return try3;
}
JS 获取随机颜色
js
/*
* 获取随机颜色值
* @param min,最小取值,取值范围 0-255
* @param max,最大取值,取值范围 0-255
*/
function getColor(min, max) {
var co = "";
co += getRandom(min, max) + ",";
co += getRandom(min, max) + ",";
co += getRandom(min, max);
return RGB2Hex(co);
}
/*
* 获取指定范围随机数
* @param min,最小取值
* @param max,最大取值
*/
function getRandom(min, max) {
//x 上限,y 下限
var x = max;
var y = min;
if (x < y) {
x = min;
y = max;
}
var rand = parseInt(Math.random() * (x - y + 1) + y);
return rand;
}
/*
* 获取颜色值
* @param rgb, RGB 颜色值,如 "23,189,246"
*/
function RGB2Hex(rgb) {
var re = rgb.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); // 利用正则表达式去掉多余的部分
var hexColor = "#";
var hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
for (var i = 0; i < 3; i++) {
var r = null;
var c = re[i];
var hexAr = [];
while (c > 16) {
r = c % 16;
c = (c / 16) >> 0;
hexAr.push(hex[r]);
}
hexAr.push(hex[c]);
hexColor += hexAr.reverse().join("");
}
return hexColor;
}
JS 获取指定范围的随机数
会 JavaScript 的都知道 Math.random()
返回 0-1 间的一个随机数(包括 0,不包括 1),那么如何获得指定范围内的随机数呢?
js
Math.floor(Math.random() * (max - min + 1) + min);
其中: max - 期望的最大值 min - 期望的最小值