问题描述
我正在尝试将一个列表转换为一个 Primeng TreeTable 的树结构。
[{pk:"1",corpID:"1234",date: "31/03/21",rela:"4325",price:"20.00"},{pk:"2",date: "21/03/21",rela:"4425",price:"50.00"},{pk:"3",corpID:"3456",date: "03/03/21",rela:"6327",price:"80.00"},{pk:"4",corpID:"4567",date: "05/03/21",rela:"7328",price:"40.00"}]
我需要将数据分组两次,第一次按 corpId
,第二次按 rela
。 PrimeNG TreeTable 使用 data
和 children
- 数据将是行上显示的值,子项将是展开行中的数据。 https://www.primefaces.org/primeng/showcase/#/treetable
结构应该是:
{ data : [
{
data: {
corpID : "1234"
},children: [
{
data:{
RELA: "4325"
},children: [
{
data : { pk:"1",}]
},data:{
RELA: "4425"
},children: [
{
{ pk:"2",corpID:"2345",price:"50.00"
}
]
...
我尝试过分组依据和使用 reduce 的函数,虽然它创建了正确的树结构,但它压缩了数据。
有没有办法在构建树结构的同时还包含 data
和 children
属性?任何帮助将不胜感激!
我在下面尝试的函数减少了数据,我也不知道如何添加 data
和 children
let result = this.data.reduce(this.totree,{});
totree(branches,node) {
if (!branches[node.corpId]) {
branches[node.corpId] = {};
}
branches[node.corpId][node.rela] = node;
branches[node.corpId][node.rela] = Object.assign(branches[node.corpId][node.rela]);
return branches;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)