【JavaScript】要素がオブジェクトの配列を特定のキーの値でソートする

今後も行いそうな操作なので、私のための備忘録としてまとめ。
タイトル通り、要素がオブジェクトの配列を、そのオブジェクトの特定のキーでソートする方法についてです。

参考にさせていただいた記事はこちら。

JavaScriptで要素がオブジェクトの配列を日付や数値でソートする方法
https://keizokuma.com/js-array-object-sort/

 

並び替えには、sort() メソッドを使用します。
で、サンプルコードはこちら。

let list = [
  { date: '2021-02-08', name: 'みかん' },
  { date: '2021-02-07', name: 'りんご' },
  { date: '2021-02-15', name: 'ぶどう' },
  { date: '2021-02-11', name: 'バナナ' },
];
list.sort((a, b) => a.date > b.date ? 1 : -1);

上記のコードでは、キー date の値で昇順にしています。
なお、降順にしたい場合は、比較演算子を逆にするか、返り値を逆にすればOKです。

ちなみに、上記の参考サイトでは、下記のように定義していました。

list.sort(function(a, b) {
   if (a.date > b.date) {
       return 1;
   } else {
       return -1;
   }
});

こちらでももちろん問題なく動作するのですが、この内容であれば 1行で書いてしまいたかったので、上のサンプルコードのように書き直しました。
このあたりはお好きな書き方で問題ないかと思うのですが…個人的には、1行で書けるコードであれば、1行で書いてしまった方が良いと思います。

 

以上、JavaScript で要素がオブジェクトの配列を、特定のキーの値でソートする方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG