javascript之求数组中最大和最小值

140 阅读1分钟

前言

求最大和最小值,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);

参考:github.com/mqyqingfeng…