PrismaCode

Notes on programming.

objectのarrayを特定のvalueでソートしてみる

19 March, 2019

完全に備忘録...

何する??

オブジェクトが入っている配列について,特定のvalueでソートしたい!

  • javascriptでオブジェクトが入っている配列をソートしたい!
  • オブジェクト内に日時があり新しい順に並べたいとき,とか.

解決策

これでいけた!

var arr = [
    {
        name:'a',
        val:10,
        datetime:'2019-03-10 00:18:30'
    },
    {
        name:'d',
        val:100,
        datetime:'2019-03-09 09:32:25'
    },
    {
        name:'b',
        val:1,
        datetime:'2019-03-08 18:09:43'
    }
];

function compare(a, b) {
    const datetimeA = a.datetime.toUpperCase();
    const datetimeB = b.datetime.toUpperCase();

    let comparison = 0;
    if (datetimeA > datetimeB) {
      comparison = 1;
    } else if (datetimeA < datetimeB) {
      comparison = -1;
    }
    return comparison * -1;
}
console.log(arr.sort(compare));

出力結果

[ { name: 'a', val: 10, datetime: '2019-03-10 00:18:30' },
  { name: 'd', val: 100, datetime: '2019-03-09 09:32:25' },
  { name: 'b', val: 1, datetime: '2019-03-08 18:09:43' } ]

ソートの順序を逆にするにはreturnのところで-1を外せばOK!

以上だ( `・ω・)b

#javascript