需求:实现对数组进行乱序,直接上代码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;
})