javaScript获取数组最大值和最小值
获取数组的最大值和最小值是常用需求,实现的方式也多种多样,下面介绍几个获取数组最大值最小值的方法。
1.遍历法
例如求最大值,假设数组第一个就是最大值,然后遍历数组,拿这个最大值和后面的元素逐一比较,把假设的值进行替换。最后得到的结果就是我们想要的。
// 获取最大值:
var arr = [2,23,12,124,82];
var max = arr[0];
for(var i = 1; i < arr.length; i++) {
var cur = arr[i];
cur > max ? max = cur : null
}
console.log(max); // 124
最小值同理。
// 获取最小值:
var arr = [2,23,12,124,82];
var min = arr[0];
for(var i = 1; i < arr.length; i++) {
var cur = arr[i];
cur < min ? min = cur : null
}
console.log(min) // 2
2.排序法
把数组升序排序,第一项就是最小值,最后一项就是最大值;把数组降序排序,第一项就是最大值,最后一项就是最小值。
var arr = [2,23,12,124,82];
arr.sort(function (a, b) {
return a-b;
}); // 升序排序 return b-a 为降序排序
var min = arr[0]; // 2
var max = arr[arr.length - 1]; //124
3.Math的max/min方法
var arr = [2,23,12,124,82];
var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 124,2
4.ES6的扩展运算符
//最大值
var arr = [2,23,12,124,82];
console.log(arr.Math(...arr)); // 124
5.eval
本质上还是使用Math的max/min方法
var arr = [2,23,12,124,82];
var max = eval("Math.max(" + arr + ")");
console.log(max); //124