let selectSorting = function (arr) { // temp 指针,用来表示未排序数组中最小的数的下标 let temp = 0; for (let i = temp; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[j] < arr[temp]) { temp = j; } } // 确定arr[temp]是未排序数组中最小的后,做交换 // 但是这里要排除一种情况: temp === i 不需要做交换 if (temp !== i) { [arr[temp], arr[i]] = [arr[i], arr[temp]]; } } return arr; } console.log('selectSorting([2, 9, 6, 7, 4, 3, 1, 8])', selectSorting([2, 9, 6, 7, 4, 3, 1, 8]))