获取数组中最大值和最小值的方法汇总

1、排序法:

思路:对数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值。

排序使用数组中的sort方法。

var arr = [14,78,25,1,82,51,22];
arr.sort(function (a, b) {
  return a-b;
}); 
var min = arr[0];  
var max = arr[arr.length - 1]; 

2、Math函数中的max/min方法:

思路:使用Math函数中的max/min方法。

//Math.max.apply(Function, Args) || Math.min.apply(Function, Args)
//Function为要调用的方法,Args是参数列表。
// 一维数组
var numbers = [10, 500 , 0 , -15 ];
console.log(Math.min.apply(null, numbers));
console.log(Math.max.apply(null, numbers));
// 多维数组
var a = [1, 2, 3, [5, 6],[1, 4, 8]];
var ta = a.join(",").split(","); //转化为一维数组
console.log("Math.max最大值为:" + Math.max.apply(null, ta));
console.log("Math.min最小值为:" + Math.min.apply(null, ta));

3、假设法:

思路:假设当前数组中的第一个值是最大值,然后拿这个最大值和后面的项逐一比较,如果后面的某一个值比假设的值还大,说明假设错了,我们把假设的值进行替换。最后得到的结果就是我们想要的。

var arr = [51, 172, 81];
var MaxHeight = arr[0],
	MinHeight = arr[0];
arr.forEach(item => MaxHeight = item > MaxHeight ? item : MaxHeight);//最大值
arr.forEach(item => MinHeight = MinHeight > item ? item : MinHeight);//最小值

4、使用eval函数。

var numbers = [10, 500 , 0 , -15 ];
var max = eval("Math.max(" + numbers + ")");
console.log(max)//500
var min = eval("Math.min(" + numbers + ")");
console.log(min)//-15

5、使用es6中的扩展运算符:

var numbers = [10, 500 , 0 , -15 ];
console.log(Math.min(...numbers));//-15
console.log(Math.max(...numbers));//500

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值