取数组中的最值
1.使用 Math 中的 max/min 方法
Math.max.apply(null,arr)
Math.min.apply(null,arr)
第一个参数null,这个是因为没有对象去调用这个方法,所以直接传递null过去
Math.max()
方法,支持传递多个参数,比如:Math.max(1,4,2,3,7,5,6)
但是它不支持直接传递一个数组作为参数,比如:Math.max([1,4,2,3,7,5,6])
。
这里使用.apply将数组中的书一个一个拆分开来,传递到Math.max()方法中,就实现了传递数组的方法。
所有函数都有apply(作用域链,参数)这个方法,这个函数的“参数”,接收一个数组,并且是将数组中的每个值,分开来,传递给Math.max()方法
2.排序法
先将数组进行排序,可以按照从大到小的顺序,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值。
var arr = [12,56,25,5,82,51,22];
arr.sort(function (a, b) {
return b-a;
}); // [82, 56, 51, 25, 22, 12, 5]
var min = arr[arr.length-1];
var max = arr[0];
3.假设法
假设数组的第一个值是最大值,然后拿后面的每一项跟第一个值比较,如果大于第一个值,我们把假设的值进行替换。
var arr = [22,13,6,55,30];
var max = arr[0];
for(var i = 1; i < arr.length; i++) {
arr[i] > max ? max = arr[i] : null
}
此时的max就是数组中的最大值
4.ES6的扩展运算符
var arr = [22,13,30,55,30];
console.log(arr.Math(...arr)); // 55