如何实现数组的随机排序?(三种)

121 阅读1分钟

方法一:for 循环+配合临时变量

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
function randSort1() {
    for (let i = 0; i < arr.length; i++) {
        let randNum = parseInt(Math.random() * arr.length)
        let temp = arr[randNum]
        arr[randNum] = arr[i]
        arr[i] = temp
    }
    return arr
}
console.log(randSort1(arr))

方法二:while 循环+push()+splice()

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
function randSort2(arr) {
    let newArr = []
    while (arr.length > 0) {
        let ranIndex = parseInt(Math.random() * arr.length)
        newArr.push(arr[ranIndex])
        arr.splice(ranIndex, 1)
    }
    return newArr
}
console.log(randSort2(arr))

方法三:sort() 方法

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr.sort(function () {
    return Math.random() - 0.5
})
console.log((arr))