数组随机排数
直接贴代码
function shuffle(arr) {
let i = arr.length;
while (i) {
let j = Math.floor(Math.random() * i--);
[arr[j], arr[i]] = [arr[i], arr[j]];
}
return arr
}
代码分析:
1. 直接将数组传参,对数组进行倒循环;
2. 利用 Math.floor(Math.random() * i--) 获取一个不大于数组长度的随机数 j,即随机从数组中抽取一个元素arr[j];
3. 每次循环,都将数组的最后一个元素(即 arr[i]),与 随机得到的元素 arr[j]进行互换;
4. 最后 返回 打乱顺序的 数组 arr.