今後も行いそうな操作なので、私のための備忘録としてまとめ。
タイトル通り、要素がオブジェクトの配列を、そのオブジェクトの特定のキーでソートする方法についてです。
参考にさせていただいた記事はこちら。
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 で要素がオブジェクトの配列を、特定のキーの値でソートする方法についてでした。
ご参考になれば幸いです。