数组操作代码片段1

export
function toTreeData(data, id, pid, name) {
    // 建立个树形结构,需要定义个最顶层的父节点,pid是0
    let parent = [];
    for (let i = 0; i < data.length; i++) {
        // console.log(data[i][pid])
        if (data[i][pid] !== 0) {} else {
            let obj = {
                label: data[i][name],
                id: data[i][id],
                children: []
            };
            parent.push(obj); //数组加数组值
        }
    }
    children(parent);

    // 调用子节点方法,参数为父节点的数组
    function children(parent) {
        // console.log(parent)
        if (data.length !== 0) {
            for (let i = 0; i < parent.length; i++) {
                for (let j = 0; j < data.length; j++) {
                    if (parent[i].id == data[j][pid]) {
                        let obj = {
                            label: data[j][name],
                            id: data[j][id],
                            children: []
                        };
                        parent[i].children.push(obj);
                    }
                }
                children(parent[i].children);
            }
        }
    }
    return parent;
}

//树形列表
getTreeData() {
    getTreeMenu('').then(res = >{
        this.loading = false;
        let treeList = res.result;
        const userStr = JSON.parse(treeList); //从一个字符串中解析出json对象
        this.treeData = toTreeData(userStr, "id", "pId", "name")
        //this.chils = JSON.stringify(result, null, '\t');//从一个对象解析出字符串
    })
},

你可能感兴趣的:(数组操作代码片段1)