jsは、ツリー構造(ツリー)を再帰的に走査して、親と子の値を返します

データの下部

コードをアップロード

function getParent(data2, id) {
    
    
    let arrRes = [];
    // 如果非数组直接返回
    if (data2.length === 0) {
    
    
        if (id) {
    
    
            arrRes.unshift(data2)
        }
        return arrRes;
    }
    const rev = (data, nodeId) => {
    
    
        for (let i = 0; i < data.length; i+=1) {
    
    
            const node = data[i];
            // 顶层直接跳出
            if (!nodeId && nodeId !== 0) break;

            // 有则跳出循环再次递归
            if (node.id === nodeId) {
    
    
                arrRes.unshift(node.id)
                rev(data2, node.parent_id);
                break;
            }
            else if (node.children) {
    
    
                rev(node.children, nodeId);
            }
        }
        return arrRes;
    };
    arrRes = rev(data2, id);
    return arrRes;
}

// 调用
getParent(data, 2)

データ

const data = [
        {
    
    
            "id": 0,
            "name": "中心",
            "level": 0,
            "label": "中心",
            "value": 0,
            "children": [
                {
    
    
                    "id": 1,
                    "parent_id": 0,
                    "name": "管理员",
                    "level": 1,
                    "label": "管理员",
                    "value": 1,
                    "children": [
                        {
    
    
                            "id": 2,
                            "parent_id": 1,
                            "name": "库房管理员",
                            "level": 2,
                            "label": "库房管理员",
                            "value": 2
                        }, {
    
    
                            "id": 4,
                            "parent_id": 1,
                            "name": "02库房管理员",
                            "level": 2,
                            "label": "02库房管理员",
                            "value": 4
                        }
                    ]
                }
            ],
        }
    ]

おすすめ

転載: blog.csdn.net/weixin_44953227/article/details/105817366