开发者问题收集

在 JavaScript 中查找数组的最小/最大元素

2009-11-03
1633295

如何轻松获取 JavaScript 数组的最小或最大元素?

示例伪代码:

let array = [100, 0, 50]

array.min() //=> 0
array.max() //=> 100
3个回答

如何增强内置 Array 对象以使用 Math.max / Math.min 来代替:

Array.prototype.max = function() {
  return Math.max.apply(null, this);
};

Array.prototype.min = function() {
  return Math.min.apply(null, this);
};

let p = [35,2,65,7,8,9,12,121,33,99];

console.log(`Max value is: ${p.max()}` +
  `\nMin value is: ${p.min()}`);

这是一个 JSFiddle

增强内置函数可能会导致与其他库发生冲突(有些人会注意到),因此您可能更愿意只使用直接将 apply 中的 Math.xxx() 应用于您的数组:

var min = Math.min.apply(null, arr),
    max = Math.max.apply(null, arr);

或者,假设您的浏览器支持 ECMAScript 6,您可以使用 spread 语法 ,其功能类似于 apply 方法:

var min = Math.min( ...arr ),
    max = Math.max( ...arr );
Roatin Marth
2009-11-03
var max_of_array = Math.max.apply(Math, array);

有关完整讨论,请参阅: http://aaroncrane.co.uk/2008/11/javascript_max_api/

newspire
2011-05-23

使用扩展运算符 (ES6)

Math.max(...array)  // The same with "min" => Math.min(...array)
const array = [10, 2, 33, 4, 5];

console.log(
  Math.max(...array)
)
Abdennour TOUMI
2016-08-23