假设数据是这样的,不难发现,其中父级roleCode有重复的,子级roleCode也有重复的,如何做到把重复的去掉,同时,又可以把不重复的合并到一起呢?
testTreeData: [ { roleCode: 'staff', roleNameCn: '员工', children: [ { roleCode: 'staff_01', roleNameCn: '员工_01', children: [ { roleCode: 'staff_01_01', roleNameCn: '员工_01_01' } ] } ] }, { roleCode: 'staff', roleNameCn: '员工', children: [ { roleCode: 'staff_02', roleNameCn: '员工_02', children: [ { roleCode: 'staff_02_01', roleNameCn: '员工_02_01' }, { roleCode: 'staff_02_02', roleNameCn: '员工_02_02' } ] } ] }, { roleCode: 'staff', roleNameCn: '员工', children: [ { roleCode: 'staff_02', roleNameCn: '员工_02', children: [ { roleCode: 'staff_webank_02_03', roleNameCn: '员工_02_03' }, { roleCode: 'staff_webank_02_04', roleNameCn: '员工_02_04' } ] } ] }, { roleCode: 'aaaaaaaa', roleNameCn: '员工aaa' }, { roleCode: 'bbbbbbbb', roleNameCn: '员工bbb' } ]`
已解决
悬赏分:0
- 解决时间 2022-01-16 22:43
点赞 0反对 0举报 0
收藏 0
分享 5
回答2
最佳
-
const result = [] testTreeData.forEach(child => merge(result, child)) function merge (source, child) { const curItem = source.find(item => item.roleCode === child.roleCode) if (!curItem) { source.push(child) } else { if (curItem.children && child.children) { child.children.forEach(childData => merge(curItem.children, childData)) } } }
支持 0 反对 0 举报2022-01-16 16:00