当前位置:网站首页>js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

2022-07-06 09:17:00 阿波次嘚

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(","));

在这里插入图片描述

原网站

版权声明
本文为[阿波次嘚]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45062076/article/details/123294331