javascript - 从 Javascript 中的数组中获取最小值?

标签 javascript arrays min

数组 justPrices 的值如下:

[0] = 1.5
[1] = 4.5
[2] = 9.9.

如何返回数组中的最小值?

最佳答案

寻找最小值的最简洁的表达代码可能是rest parameters :

const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
const min = Math.min(...arr)
console.log(min)


Rest 参数本质上是 Function.prototype.apply 的便捷简写当您不需要更改函数的上下文时:

var arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
var min = Math.min.apply(Math, arr)
console.log(min)


这也是 Array.prototype.reduce 的一个很好的用例:

const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
const min = arr.reduce((a, b) => Math.min(a, b))
console.log(min)

Math.min 直接传递给 reduce 可能很诱人,但是回调会接收额外的参数:

callback (accumulator, currentValue, currentIndex, array)

在这种特殊情况下,它可能有点冗长。 reduce 在您有一组复杂数据并希望聚合成单个值时特别有用:

const arr = [{name: 'Location 1', distance: 14}, {name: 'Location 2', distance: 58}, {name: 'Location 3', distance: 20}, {name: 'Location 4', distance: 77}, {name: 'Location 5', distance: 66}, {name: 'Location 6', distance: 82}, {name: 'Location 7', distance: 42}, {name: 'Location 8', distance: 67}, {name: 'Location 9', distance: 42}, {name: 'Location 10', distance: 4}]
const closest = arr.reduce(
  (acc, loc) =>
    acc.distance < loc.distance
      ? acc
      : loc
)
console.log(closest)


当然,您始终可以使用经典迭代:

var arr,
  i,
  l,
  min

arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
min = Number.POSITIVE_INFINITY
for (i = 0, l = arr.length; i < l; i++) {
  min = Math.min(min, arr[i])
}
console.log(min)

...但即使是经典迭代也可以进行现代改造:

const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
let min = Number.POSITIVE_INFINITY
for (const value of arr) {
  min = Math.min(min, value)
}
console.log(min)

关于javascript - 从 Javascript 中的数组中获取最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934877/

相关文章:

javascript - HTML Slider 中的第一张幻灯片在初始页面加载时不显示

javascript - 当窗口宽度达到865px时重新启动greensock(JS)动画

python - 使 numpy 数组单调,无需 Python 循环

python - 使用列表从 numpy 数组数组中提取元素

javascript - 将带有单个键的 JavaScript 对象数组更改为包含对象数据的数组

java - 使用java编写两个方法min和max来查找链表中的最大值和最小值,但输入列表是整数数组

mysql - 使用 MySQL 聚合函数 MIN 时获取正确的行数据?

javascript - Moment js Time Ago 计算错误日期

c++ - 使用 C++ 在值数组中查找最大利润 (max - min)

javascript - Selenium webdriver 机器人在 javascript 渲染的网站中运行