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

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值