JavaScript数组乱序

需求:实现对数组进行乱序,直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 洗牌算法 Fisher–Yates shuffle
function shuffle(array){
let _array = array.concat()
for(let i = 0, rand; i < array.length; i++){
rand = ~~(Math.random() * (i + 1)) // 位运算符,用于取整
let tem = _array[rand];
_array[rand] = _array[i];
_array[i] = tem;
}
return _array;
}
// Math.random()取巧,不推荐使用
let arr = [1,2,3,4,5,6,7,8]
let sign = 1
arr.sort((a, b) => {
sign = (Math.random() > 0.5) ? 1 : -1
return (a - b) * sign;
})