【发布时间】:2021-06-25 08:52:43
【问题描述】:
我有一个如下所示的 api 响应
response = [
{ id: 1, val: 'A', date: '28/03/2021', versions: [] },
{ id: 1, val: 'B', date: '29/03/2021', versions: [] },
{ id: 1, val: 'C', date: '30/03/2021', versions: [] },
{ id: 2, val: 'D', date: '31/03/2021', versions: [] }
]
很明显,id:1 的最新值为C。我需要将其转换为如下所示
response = [
{ id: 2, val: 'D', date: '31/03/2021', versions: ['31/03/2021'] },
{ id: 1, val: 'C', date: '30/03/2021', versions: ['28/03/2021', '29/03/2021', '30/03/2021'] }
]
也就是说,id:1 有三个版本,id:2 只有一个版本。
我试过这样的
_.uniqBy(_.orderBy(response, 'date','desc'), 'id');
上面的代码删除了重复项并显示了最新的 id:1 的值,但不确定要使用哪个 lodash 函数以及如何添加版本。任何线索都会非常有帮助。
【问题讨论】:
标签: json angular typescript lodash