Javascript で配列から最小値を取得しますか? 質問する

Javascript で配列から最小値を取得しますか? 質問する

配列 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)

おすすめ記事