コードをアップロード
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
}
]
}
],
}
]