求数组的最大和最小值

136 阅读1分钟
1.Es6
var arr = [12,22,5,25,51,56];
console.log(Math.max(...arr))
//[5,12,22,25,51,56]
2.sort排序
var arr = [22,13,6,55,30];
arr.sort((a,b)=>{
    return a-b
})
// [5,12,22,25,51,56]
var min = arr[0]; //5
var max = arr[arr.length-1]; //56
3.Math中的 max/min 方法

可以使用apply来实现。apply传入的是一个数组。

var arr = [22,13,6,55,30];
var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 55,6
4.假设法

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

// 获取最大值:
var arr = [22,13,6,55,30];
var max = arr[0];
for(var i = 1; i < arr.length; i++) {
   var cur = arr[i];
   cur > max ? max = cur : null
}
console.log(max); // 55
// 获取最小值:
var arr = [22,13,6,55,30];
var min = arr[0];
for(var i = 1; i < arr.length; i++) {
  var cur = arr[i];
  cur < min ? min = cur : null
}
console.log(min)  // 6