0
点赞
收藏
分享

微信扫一扫

将扁平化数据处理为树形层级数据

闲鱼不咸_99f1 2022-04-17 阅读 46
javascript
let dataList = [{
    name: "太老爷",
    id: "001",
    pId: null,
}, {
    name: "大爷",
    id: "002",
    pId: "001",
}, {
    name: "二大爷",
    id: "003",
    pId: "001",
}, {
    name: "大爸",
    id: "004",
    pId: "002",
}, {
    name: "二爸",
    id: "006",
    pId: "002",
}, {
    name: "老叔",
    id: "005",
    pId: "003",
}, {
    name: "二叔",
    id: "007",
    pId: "003",
}, {
    name: "三叔",
    id: "008",
    pId: "003",
}, {
    name: "张三",
    id: "009",
    pId: "006",
}]

console.log(setTreeData(dataList))

function setTreeData(list) {
    const cloneData = JSON.parse(JSON.stringify(list));
    return cloneData.filter(father => {
        //获取相同父级的子级集合
        const childrenList = cloneData.filter(child => father.id === child.pId);
        childrenList.length ? father.children = childrenList : [];
        return !father.pId;
    })
}
举报

相关推荐

0 条评论