【发布时间】:2010-12-12 18:07:57
【问题描述】:
如何轻松获取 JavaScript 数组的最小或最大元素?
示例伪代码:
let array = [100, 0, 50]
array.min() //=> 0
array.max() //=> 100
【问题讨论】:
-
注意: 使用 ECMAScript 6,您可以使用新的 spread operator(三个点:
...)和Math.max(),如下所示:Math.max(...[2, 5, 16, 1])。请参阅由MDN documentation 制成的my answer。 -
这里是最常用方法的速度比较基准:jsben.ch/#/1QuTg
-
没有 ES6
Math.max.apply(null, [2,5,16,1]) -
@AronFiechter 你真的看过我的回答吗?我通过代码示例和基准非常详细地解释了所有选项。只有当数组的大小大于 100000 时,调用堆栈大小才会成为问题。虽然必须考虑调用堆栈,但在大多数情况下,这不是问题,更简洁的代码胜过缺点。
-
这个调用栈可能是个问题。有一个 HackerRank 问题需要找到最小值和最大值,并且测试在 10 秒的限制下运行。 HackerRank 为第 9 到第 14 次测试传入的数组长度大于 100,000;如果使用以下答案中的 reduce 解决方案,则会失败。 for循环会通过一些
标签: javascript