SOURCE

function selectionSort(arr) {

    // 1. 数组的第一轮循环(最后一个不用比,所以length-1)
    for (let i = 0; i < arr.length - 1; i++) {

        // 标记本轮中最小的
        let minIndex = i

        // 2. 从i+1到数组末尾进行比较
        for (let j = i + 1; j < arr.length; j++) {
            // 注意是minIndex和它比,不是i!!!!

            // 3. 如果找到更小的,就标记为最小的
            if (arr[minIndex] > arr[j]) minIndex = j
        }

        // 4. 最小的发生改变了,就用解构赋值进行交换
        if (minIndex !== i) {
           [arr[minIndex], arr[i]] =  [arr[i], arr[minIndex]]
        }
    }

    return arr
}

const arr = [2, 3, 41, 1, 6, 53, 4, 6, 87, 4]
const res = selectionSort(arr)

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

                    
>
console