配列 justPrices には次のような値があります。
[0] = 1.5
[1] = 4.5
[2] = 9.9.
配列内の最小値を返すにはどうすればいいですか?
ベストアンサー1
最小値を見つける最も簡潔なコードはおそらく残りのパラメータ:
const arr = [14, 58, 20, 77, 66, 82, 42, 67, 42, 4]
const min = Math.min(...arr)
console.log(min)
残りパラメータは、本質的には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
複雑なデータのコレクションがあり、それを 1 つの値に集約したい場合に特に便利です。
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)