2010-05-17 64 views
1

有没有像PHP的:max()在JavaScript?什么是最有效的方式来获得最高和最低值在一个数组

可以说我有一个这样的数组:

[2, 3, 23, 2, 2345, 4, 86, 8, 231, 75] 

,我想返回该数组中的最高和最低值。什么是最快的方法呢?

我曾尝试:

function madmax (arr) { 
    var max = arr[0], 
     min = arr[1] 

    if (min > max) { 
     max = arr[1] 
     min = arr[0] 
    } 

    for (i=1;i<=arr.length;i++){ 
    if(arr[i] > max) { 
     max = arr[i] 
    }else if(arr[i] < min) { 
     min = arr[i] 
    } 
} 

return max, min 
} 

madmax([123, 2, 345, 153, 5, 98, 456, 4323456, 1, 234, 19874, 238, 4]) 

有没有一种简单的方法来检索一个数组的最大值和最小值?

回答

12

ApplyingMath.maxMath.min内置方法可以非常快:

var array = [2, 3, 23, 2, 2345, 4, 86, 8, 231, 75]; 
var max = Math.max.apply(Math, array); // 2345 
var min = Math.min.apply(Math, array); // 2 
+0

哇THX你快回答! – meo 2010-05-17 22:02:02

+0

然后完全相同的分钟'Math.min.apply(Match,array);' – 2010-05-17 22:04:24

+2

@meo,欢迎大家查看这个简单[性能测试](http://jsbin.com/uyani3/2)应用'Math.max'和你的'madmax'函数。 – CMS 2010-05-17 22:09:33

相关问题