扁平化树形数组转换
问题:
如何将扁平化的数组转换为树形数组结构?
原始数组:
const arr = [ {id: 4, pid: 3}, {id: 'aa',pid:'a'}, {id: 1, pid: null}, {id: 3, pid: 2}, {id: 'a',pid: 'a0'}, {id: 2, pid: 1}, {id: 'a0',pid: null} ];
登录后复制
期望结果:
[ { "id": 1, "pid": null, "children": [ { "id": 2, "pid": 1, "children": [ { "id": 3, "pid": 2, "children": [ { "id": 4, "pid": 3 } ] } ] } ] }, { "id": "a0", "pid": null, "children": [ { "id": "a", "pid": "a0", "children": [ { "id": "aa", "pid": "a" } ] } ] }]
登录后复制
代码实现:
arr.reduce((o, i) => { i = object.assign(o[i.id] ??= {}, i); ((o[i.pid ?? ''] ??= {}).children ??= []).push(i); return o;}, {})['']?.children
登录后复制
结果:
[ { "id": 1, "pid": null, "children": [ { "id": 2, "pid": 1, "children": [ { "id": 3, "pid": 2, "children": [ { "id": 4, "pid": 3 } ] } ] } ] }, { "id": "a0", "pid": null, "children": [ { "id": "a", "pid": "a0", "children": [ { "id": "aa", "pid": "a" } ] } ] }]
登录后复制
以上就是如何将扁平化的数组转换成树形结构?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2648900.html