我有一个这样的 json 响应:
{
"result": [
{
"id": 2984,
"amount": 5000000,
"account": "money",
"trade_no": "2121683414670617655",
"type": 0,
"for_id": 0,
"created_at": "2021-02-16 20:50:14",
"payment_method": 0,
"status": 1
},
{
"id": 2999,
"amount": -450000,
"account": "money",
"trade_no": "212173166272246C118",
"type": 5,
"for_id": "2021021760479",
"created_at": "2021-01-17 10:14:22",
"payment_method": "0",
"status": 1
},
],
"code": 200,
"description": "OK"
}
然后我想按月和年对 api 进行分组,如下所示:
请帮我解决这个问题
答案 0 :(得分:0)
您可以使用 lodash 中的 groupBy 方法。
var grouped = _.groupBy(result, function(item) {
return item.created_at.substring(0,7);
});
这将为您提供以下格式的数据:
{
"2021-02": [
{
"id": 2984,
"amount": 5000000,
"account": "money",
"trade_no": "2121683414670617655",
"type": 0,
"for_id": 0,
"created_at": "2021-02-16 20:50:14",
"payment_method": 0,
"status": 1
}
],
"2021-01": [
{
"id": 2999,
"amount": -450000,
"account": "money",
"trade_no": "212173166272246C118",
"type": 5,
"for_id": "2021021760479",
"created_at": "2021-01-17 10:14:22",
"payment_method": "0",
"status": 1
}
]
}
在渲染数据时,您可以使用这样的 moment 将 Year-Month 键格式化为字符串,
moment('2021-01', 'YYYY-MM').format('MMMM YYYY');