处理树状结构数据

原始数据:
[
{ “orgid”: “1197A11000000000JGVP”, “porgid”: “4496”, “orglevel”: “03”, “orgname”: “工会” },
{ “orgid”: “1197A11000000000JGU4”, “porgid”: “4496”, “orglevel”: “03”, “orgname”: “信用卡部” },
{ “orgid”: “4496”, “porgid”: “44”, “orglevel”: “02”, “orgname”: “广东省分行本部” }
]
porgid是父节点数据
处理后的数据:
[
{
“name”: “广东省分行本部”,
“id”: “4496”,
“children”: [
{
“name”: “工会”,
“id”: “1197A11000000000JGVP”,
“children”: []
},
{
“name”: “信用卡部”,
“id”: “1197A11000000000JGU4”,
“children”: []
}
]
}
]

代码部分:
const rawData = [
{
orgid: “1197A11000000000JGVP”,
porgid: “4496”,
orglevel: “03”,
orgname: “工会”
},
{
orgid: “1197A11000000000JGU4”,
porgid: “4496”,
orglevel: “03”,
orgname: “信用卡部”
},
{
orgid: “4496”,
porgid: “44”,
orglevel: “02”,
orgname: “广东省分行本部”
}
];

function buildTree(data) {
const map = {};
const rootNodes = [];

// 创建映射表
data.forEach(item => {
map[item.orgid] = {
name: item.orgname,
id: item.orgid,
children: []
};
});

// 遍历数据,构建树形结构
data.forEach(item => {
if (map[item.porgid]) {
map[item.porgid].children.push(map[item.orgid]);
} else {
rootNodes.push(map[item.orgid]);
}
});

return rootNodes;
}

// 调用方法
const transformedData = buildTree(rawData);
console.log(transformedData);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值