在 AG-Grid 中显示复杂键值对
Display Complex key-value pair in AG-Grid
我有一张地图要通过 API 发送到 Angular,我想在 ag-grid 中显示它。
该地图具有作为日期的键和作为对象列表的值
地图是这样的:
{ 2019-12-23 00:00:00.0: Array(3),2019-05-24 00:00:00.0: Array(1)}
物体是这样的
{"id":5, "amt":10,"status":new}
所以我希望在 ag-grid 中显示相同的内容,以便我可以根据 amt 字段对其进行排序。
所以像:
(假设上面的映射 obj1、obj2、obj3 在第一个数组中,即键为 2019-12-23 00:00:00.0,obj4 键为 2019-05-24 [=25= .0 并假设 obj1.amt > obj4.amt > obj2.amt > obj3.amt).
2019-12-23 00:00:00.0 | obj1.id| obj1.amt |obj1.status
2019-05-24 00:00:00.0 | obj4.id| obj4.amt |obj4.status
2019-12-23 00:00:00.0 | obj2.id| obj2.amt |obj2.status
2019-12-23 00:00:00.0 | obj3.id| obj3.amt |obj3.status
我怎样才能做到这一点?任何代码片段都会有所帮助。
谢谢
实施可能因时间而异属性
你需要时间在 table 吗?
如果 - 否 - 解决方案会容易得多
const entireObject = {
[new Date(1000).toISOString()]: [ {"id":5, "amt":10,"status":'new'}, {"id":6, "amt":10,"status":'new'}],
[new Date(2000).toISOString()]: [ {"id":7, "amt":10,"status":'new'}, {"id":8, "amt":10,"status":'new'}]
}
const outputData = Object.values(entireObject).flat();
console.log(outputData)
如果 - 是
const entireObject = {
[new Date(1000).toISOString()]: [ {"id":5, "amt":10,"status":'new'}, {"id":6, "amt":10,"status":'new'}],
[new Date(2000).toISOString()]: [ {"id":7, "amt":10,"status":'new'}, {"id":8, "amt":10,"status":'new'}]
}
const outputData = Object.entries(entireObject).map(([time, arr]) => arr.map( i => ({...i, time}))).flat();
console.log(outputData);
演示:https://plnkr.co/edit/97AVLXG8GeSzc7wo
例子
我有一张地图要通过 API 发送到 Angular,我想在 ag-grid 中显示它。 该地图具有作为日期的键和作为对象列表的值 地图是这样的:
{ 2019-12-23 00:00:00.0: Array(3),2019-05-24 00:00:00.0: Array(1)}
物体是这样的
{"id":5, "amt":10,"status":new}
所以我希望在 ag-grid 中显示相同的内容,以便我可以根据 amt 字段对其进行排序。 所以像:
(假设上面的映射 obj1、obj2、obj3 在第一个数组中,即键为 2019-12-23 00:00:00.0,obj4 键为 2019-05-24 [=25= .0 并假设 obj1.amt > obj4.amt > obj2.amt > obj3.amt).
2019-12-23 00:00:00.0 | obj1.id| obj1.amt |obj1.status
2019-05-24 00:00:00.0 | obj4.id| obj4.amt |obj4.status
2019-12-23 00:00:00.0 | obj2.id| obj2.amt |obj2.status
2019-12-23 00:00:00.0 | obj3.id| obj3.amt |obj3.status
我怎样才能做到这一点?任何代码片段都会有所帮助。 谢谢
实施可能因时间而异属性
你需要时间在 table 吗?
如果 - 否 - 解决方案会容易得多
const entireObject = {
[new Date(1000).toISOString()]: [ {"id":5, "amt":10,"status":'new'}, {"id":6, "amt":10,"status":'new'}],
[new Date(2000).toISOString()]: [ {"id":7, "amt":10,"status":'new'}, {"id":8, "amt":10,"status":'new'}]
}
const outputData = Object.values(entireObject).flat();
console.log(outputData)
如果 - 是
const entireObject = {
[new Date(1000).toISOString()]: [ {"id":5, "amt":10,"status":'new'}, {"id":6, "amt":10,"status":'new'}],
[new Date(2000).toISOString()]: [ {"id":7, "amt":10,"status":'new'}, {"id":8, "amt":10,"status":'new'}]
}
const outputData = Object.entries(entireObject).map(([time, arr]) => arr.map( i => ({...i, time}))).flat();
console.log(outputData);
演示:https://plnkr.co/edit/97AVLXG8GeSzc7wo
例子