SOURCE

function selectionSort(arr) {

    // 1. 遍历整个数组
    for (let i = 0; i < arr.length; i++) {
        
        // 2. 每次循环标记当前元素
        let currentIndex = i

        // 3. 比较当前元素和左边一个元素,如果左边还有元素并且比当前元素大,就交换,不存在前一个或者比当前元素小时终止循环
        while (arr[currentIndex - 1] !== undefined && arr[currentIndex] < arr[currentIndex - 1]) {

            // 4. 交换当前元素和左边一个元素
            [arr[currentIndex],arr[currentIndex-1]] = [arr[currentIndex-1],arr[currentIndex]]

            // 5. 交换过后当前元素往左移
            currentIndex -=1
        }
    }
    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