var arr34 = [1, 4, 32, 4, 5, 7, 8];//实际应输出 [32,4,8,4,5,7,1]
var arr_new_34 = [].concat(arr34);//深拷贝
arr_new_34.sort(function (a, b) { return a > b ? 1 : -1; });//排序找出最大最小值
var max = arr_new_34[arr_new_34.length - 1];
var min = arr_new_34[0];
var maxIndex = arr34.indexOf(max);//获取最大值在原数组的下标
[arr34[0], arr34[maxIndex]] = [arr34[maxIndex], arr34[0]];//将最大值与第一个元素交换位置 -- 解构赋值
//*** 注意 如果你第一次交换位置是把最大值和最小值交换了位置 此时 最小值的下标已经改变 变成了 2 原来是 0
//所以最小值得下标得等到交换完一遍位置在获取
var minIndex = arr34.indexOf(min);//获取最小值在原数组的下标
[arr34[arr34.length - 1], arr34[minIndex]] = [arr34[minIndex], arr34[arr34.length - 1]];//将最小值与第一个元素交换位置
console.log(arr34.join(","));
js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
于 2022-03-05 14:52:08 首次发布