欢迎光临
我们一直在努力

数组转成树形数组Js

function listToTree(data) {
    let tree = [];
    let map = {};

    data.forEach(node => {
        map[node.id] = { ...node, children: [] }
    });

    for(let id in map) {
        let node = map[id];
        if(node.parent_id === null) {
            tree.push(node);
        } else {
            if(!map[node.parent_id]) {
                map[node.parent_id] = { children: [] };
            }
            map[node.parent_id].children.push(node);
        }
    }
    
    return tree;
}

let data = [
    {
        "id": 1444,
        "name": "2023-073-B008",
        "parent_id": null
    },
    {
        "id": 1445,
        "name": "2023-073-C008",
        "parent_id": 1444
    },
    {
        "id": 1446,
        "name": "2023-073-A006",
        "parent_id": 1444
    }
];

let tree = buildTree(data);
console.log(JSON.stringify(tree, null, 2));

 

赞(0) 打赏
未经允许不得转载:豪~豪的个人中心 » 数组转成树形数组Js

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏