数组 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/