浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【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 で要素がオブジェクトの配列を、特定のキーの値でソートする方法についてでした。
ご参考になれば幸いです。

  • この記事いいね! (0)