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