获取数组中最高和最低值的最有效方法是什么

meo*_*meo 1 javascript

有没有类似PHP的东西:max()在javascript中?

假设我有一个这样的数组:

[2, 3, 23, 2, 2345, 4, 86, 8, 231, 75]
Run Code Online (Sandbox Code Playgroud)

我想返回此数组中的最高和最低值.最快的方法是什么?

我试过了:

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])
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来检索数组的最大值和最小值?

CMS*_*CMS 12

应用Math.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
Run Code Online (Sandbox Code Playgroud)

  • @meo,欢迎你,在应用`Math.max`和你的'madmax`函数之间检查这个简单的[性能测试](http://jsbin.com/uyani3/2). (2认同)