


-
[北京|结业弟子]JS-顾仁鹏
1核心就是Math运算,在固定范围内取随机数任务一里九宫格随机一个就是0~8的随机数:Math.floor(Math.random()*9,因为向下取整所以要乘九。
随机颜色:var color3 = "#"+("00000"+(Math.floor(Math.random()*16777216)).toString(16)).slice(-6);//生成6位十六进制颜色
随机颜色还有很多方法:
for(var a=0;a<6;a++){
var color4 = color4 + "0123456789abcdef"[Math.floor(Math.random()*16)];
}
//生成6位十六进制颜色
for(var i=0;i<100000;i++){
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
var color5 = "rgb("+r+','+g+','+b+")";
}
//rgb格式颜色
乱序就更复杂 单论任务二用到的洗牌算法: 拿九宫格来说就是把九个格子位置编号,然后组成一个数组,随机选取数组中元素调换位置,生成一个新的排序。比较有名的 Fisher–Yates Shuffle 耶茨洗牌算法和高纳德洗牌算法,乱序算法讲起来太多,我说的都是任务里用得到的。
耶茨算法:
$(".way2").click(function() {
var ARR = [1,2,3,4,5,6,7,8,9,10];
var copy = [],
n = ARR.length,
i;
// 如果还剩有元素。。
while (n) {
// 随机选取一个元素
i = Math.floor(Math.random() * n--);
// 移动到新数组中
copy.push(ARR.splice(i, 1)[0]);
}
console.log(copy);
return copy;
})
编辑于2019-04-05
- 去第 页