根据编码生成树状结构

function list2treeCode(list) {
    let set = new Set(list.map(item => item.code.length));
    let setOrder = Array.from(set).sort();
    let arr = list.filter(item => item.code.length == setOrder[0]);
    arr.forEach(item => {
        recursion(item, list, setOrder, 1)

    })
    return arr;
}
function recursion(obj, list, setOrder, curIndex) {
    let arr = list.filter(item => item.code.indexOf(obj.code) == 0 && item.code.length == setOrder[curIndex]);
    if (arr.length)
        obj.children = arr
    arr.forEach(element => {
        recursion(element, list, setOrder, curIndex + 1)
    });
    return arr
}

export default list2treeCode
posted @   九折丶水平  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示