前言
求最大和最小值,Math有对应的两个方法
Math.min(7, 2, 9);//2
Math.max(7, 2, 9);//9
如果方法中不传递参数,得到无穷大(或无穷小)
Math.min(); //Infinity
Math.max(); //-Infinity
方法中会对参数进行数字的隐性转换,相当于对每个参数执行Number(value),对于不能转换的,得到NaN
Math.min(7, '2', 9);//2
Math.max(7, '2', '9');//9
Math.max(7, 'a', '9');//NaN
1、reduce方式
var arr = [7, '2', 9];
function max(prev, next){
return Math.max(prev, next);
}
arr.reduce(max); //9
2、sort方式
var arr = [7, '2', 9];
arr.sort(function(a, b){ return a - b;});
var max = arr[arr.length -1];
3、eval方式
var arr = [7, '2', 9];
var max = eval('Math.max(' + arr + ')');
4、apply方式
var arr = [7, '2', 9];
var max = Math.max.apply(null, arr);
5、es6的扩展运算符
var arr = [7, '2', 9];
var max = Math.max(...arr);