lodashでグループごとの集計をしたい
JavaScriptでgroupBy集計をしたいのですが、意外とシンプルな例が見つからなかったのでメモしておきたいと思います。
let data = [ { date: '2020-01-03', gender: '男' }, { date: '2020-01-01', gender: '男' }, { date: '2020-01-01', gender: '女' }, { date: '2020-01-02', gender: '男' },{ date: '2020-01-03', gender: '男' }, ]; let summed = _.chain(data) .sortBy('date') .groupBy('date') .map((objs, key) => { return { 'date': key, 'count': _.sum([objs.length]) } }) .value();
結果
Array (3 items) 0: Object {count: 2, date: "2020-01-01"} 1: Object {count: 1, date: "2020-01-02"} 2: Object {count: 2, date: "2020-01-03"}