JS数据转成父子节点数据
原始的数据是平铺的 比如
originalData: [
{ company: 'AAA', department:'AAA-D1', office: 'AAA-D1-O1', pass: 1, onhold: 3},
{ company: 'AAA', department:'AAA-D1', office: 'AAA-D1-O2', pass: 3, onhold: 5},
{ company: 'AAA', department:'AAA-D2', office: 'AAA-D2-O1', pass: 2, onhold: 7},
{ company: 'BBB', department:'BBB-D1', office: 'BBB-D1-O1', pass: 1, onhold: 3},
{ company: 'BBB', department:'BBB-D2', office: 'BBB-D2-O1', pass: 4, onhold: 3},
{ company: 'BBB', department:'BBB-D3', office: 'BBB-D3-O1', pass: 1, onhold: 3},
....
....
]
希望转换成
treeData: [
{ label: 'AAA', department:'AAA-D1', office: 'AAA-D1-O1', pass: 6, onhold: 15, // company level
children: [ // department level
{label: 'AAA-D1', pass: 4, onhold: 8,
children: [ // office level
{label: 'AAA-D1-O1', pass: 1, onhold: 3},
{label: 'AAA-D1-O2', pass: 1, onhold: 3},
]
},
{label: 'AAA-D2', pass: 2, onhold: 7,
children: [
{label: 'AAA-D2-O1', pass: 1, onhold: 3},
]
},
]
},
...
...
]
根据指定的列 转换成父子结构的数据 比如 上面的是根据 ['company', 'department', 'office'] 不知道怎么写了 请大神指导 :( :( :( :( :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
答完才发现你要的是能根据指定列进行映射...
那我再想想,下面的当参考吧 ORZ...
输出:
思路上是先把原始数组做一次树级映射,然后再从树生成各层次信息,这样会比较好理解一些。
你题目描述中有一些奇怪的地方:
company level
里的department
和office
的取值标准不清楚,所以就没写,不过这个要加也就是在生成result
那一步,创建company
时加入节点信息即可,不会很难。你的输出格式应该有问题,起码
label: 'AAA', department:'AAA-D1', office: 'AAA-D1-O1', pass: 6, onhold: 15, // company level
是不合理的,最多是label: 'AAA', pass: 6, onhold: 15, // company level
吧如果数据能够保证全是这样的结构(只有如上的3级),其实还是比较好处理的。