SOURCE

const arr = [5, 2, 1, 8, 3]

function quick (arr) {
    if (arr.length <= 1) return arr

    const mid = Math.floor(arr.length / 2)
    const midValue = arr.splice(mid, 1)[0]

    let left = []
    let right = []

    for (let i = 0; i < arr.length; i++) {
        arr[i] < midValue ? left.push(arr[i]) : right.push(arr[i])
    }

    return quick(left).concat(midValue, quick(right))

}

console.log(quick(arr))
console 命令行工具 X clear

                    
>
console