在 AG-Grid 中显示复杂的键值对

Posted

技术标签:

【中文标题】在 AG-Grid 中显示复杂的键值对【英文标题】:Display Complex key-value pair in AG-Grid 【发布时间】:2021-11-20 06:24:03 【问题描述】:

我有一张通过 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 00:00:00.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

我怎样才能做到这一点?任何代码 sn-p 都会有所帮助。 谢谢

【问题讨论】:

【参考方案1】:

根据时间属性,实现可能会有所不同

你需要时间吗?

如果 - 否 - 解决方案会容易得多

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 本身获得时间,所以这样做 Object.values(entireObject).flat();应该可以正常工作吗?

以上是关于在 AG-Grid 中显示复杂的键值对的主要内容,如果未能解决你的问题,请参考以下文章

在 React JS 中显示来自 Json 的键值对

Spark入门--Spark的combineByKeysortBykey

如何在 scala 中生成的键值对中添加值

如何在python中打印字典的键值对

在空手道 Netty 场景中匹配请求中的键值对

如何从字典列表中向现有键值对添加新的键值对?