按月分组日期,然后使用lodash和moment进行排序

时间:2018-04-26 13:50:17

标签: javascript momentjs lodash

我有以下数组包含在

下面定义的JSON对象
grouped_items = _.groupBy(data, (b) ->
  moment(b.modDate).startOf('month').format('YYYY/MM')

我希望将结果按月分组到第一位,然后按月按降序排序。

我尝试将其与此分组

{{1}}

但是没有得到正确的结果。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望按月创建数据的分组集合,然后按月的顺序对值进行排序(因为在值中按月分类是没有意义的)

如果是这样,以下内容应该有效:



const data = [{"modDate":"2017-06-20"},{"modDate":"2017-06-25"},{"modDate":"2017-10-24"},{"modDate":"2017-10-20"},{"modDate":"2017-08-03"}];

let grouped_items = _.groupBy(data, (b) =>
  moment(b.modDate).startOf('month').format('YYYY/MM'));

_.values(grouped_items)
  .forEach(arr => arr.sort((a, b) => moment(a.modDate).day() - moment(b.modDate).day()));

console.log(grouped_items);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
&#13;
&#13;
&#13;

相关问题