オブジェクトのプロパティ値で配列を数値的にソートする 質問する

オブジェクトのプロパティ値で配列を数値的にソートする 質問する

これらのオブジェクトを含むこの配列をdistance、最短距離から最長距離の順にオブジェクトを並べ替えるにはどうすればよいでしょうか。

[
  { distance: 3388, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 13564, duration: "12 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 4046, duration: "6 mins", from: "Lenchen Ave, Centurion 0046, South Africa" },
  { distance: 11970, duration: "17 mins", from: "Lenchen Ave, Centurion 0046, South Africa" }
]

ベストアンサー1

使用配列.プロトタイプ.ソート()例えば

myArray.sort((a, b) => a.distance - b.distance)

このsort()メソッドは、コンパレータ関数。この関数は 2 つの引数 (おそらく両方とも同じ型) を受け取り、その 2 つのうちどちらが先に来るかを判断します。

これは、整数

  • 負数(ゼロ未満): 最初の引数が最初に来る
  • 正(0より大きい):2番目の引数が最初に来る
  • ゼロ: 引数はソート時に等しいとみなされます

数値を扱う場合、最も簡単な解決策は、最初の値から 2 番目の値を減算して昇順の結果を生成することです。

おすすめ記事