Js问题,有一个jsonarray怎么转成多棵树?有没有好的方法

发布于 2022-09-04 10:42:28 字数 873 浏览 22 评论 0

`[{

"id": "1",
"parentId": "0",
"nodeName": "公告资讯",

}, {

"id": "2",
"parentId": "1",
"nodeName": "查看公告",

}, {

"id": "4",
"parentId": "0",
"nodeName": "公告资讯",

}, {

"id": "5",
"parentId": "4",
"nodeName": "查看公告",

}, {

"id": "6",
"parentId": "4",
"nodeName": "查看公告1",

}]`
怎么转成
`[{

    "id": "1",
    "parentId": "0",
    "nodeName": "公告资讯",
    children: [{
        "id": "2",
        "parentId": "1",
        "nodeName": "查看公告",
    }]
}, {
    "id": "4",
    "parentId": "0",
    "nodeName": "公告资讯",
    children: [{
        "id": "5",
        "parentId": "4",
        "nodeName": "查看公告",
    }, {
        "id": "6",
        "parentId": "4",
        "nodeName": "查看公告1",
    }]
}`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2022-09-11 10:42:28
let arr = [{
    "id": "1",
    "parentId": "0",
    "nodeName": "公告资讯",
}, {
    "id": "2",
    "parentId": "1",
    "nodeName": "查看公告",
}, {
    "id": "4",
    "parentId": "0",
    "nodeName": "公告资讯",
}, {
    "id": "5",
    "parentId": "4",
    "nodeName": "查看公告",
}, {
    "id": "6",
    "parentId": "4",
    "nodeName": "查看公告1",
}];
let result = arr.reduce(function(prev, item) {
    prev[item.parentId] ? prev[item.parentId].push(item) : prev[item.parentId] = [item];
    return prev;
}, {});
for (let prop in result) {
    result[prop].forEach(function(item, i) {
        result[item.id] ? item.children = result[item.id] : ''
    });
}
result = result[0];
console.log(JSON.stringify(result))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文