要素IDに基づいてツリー構造を巡回し、すべての親要素IDを検索します.
1331 ワード
iveiw Cascade rカスケード選択コンポーネントv-modelのデータは配列タイプであり、作業中にエコーが必要な場合は、すべての親要素のIDからなる配列を渡す必要があるが、バックグラウンドにはターゲット要素のIDしか格納されていないため、自分でデータを巡回して取得するしかない.以上のように、要素IDに基づいてツリー構造を巡回し、すべての親要素IDを検索する必要がある.###データ構造は次のとおりです.
個人的な考え方は,IDの属する要素を再帰的に検索し,各レベルのparentIdを一緒に返すことである.
###実現方法:
###実行方法:
不足点やより良い方法があれば、指摘を歓迎します.
[{
"orgId": 1,
"orgName": " 1",
"parentId": 0,
"children": [{
"orgId": 2,
"orgName": " 2",
"parentId": 1,
"children": [{
"orgId": 3,
"orgName": " 3",
"parentId": 2,
}]
}]
}]
個人的な考え方は,IDの属する要素を再帰的に検索し,各レベルのparentIdを一緒に返すことである.
###実現方法:
function buildParentList(arr){
arr.forEach(g =>
{
if(g.parentId != undefined) {
let pid = g['parentId']
let oid = g['orgId']
parentList[oid] = pid
}
if (g.children != undefined)
buildParentList(g['children'])
})
}
function findParent(idx){
if (parentList[idx] != undefined){
let pid = parentList[idx]
console.log(pid)
findParent(pid)
}
}
###実行方法:
buildParentList(list)
findParent(3); // 0 1 2
findParent(2); // 0 1
findParent(4); // undefined
不足点やより良い方法があれば、指摘を歓迎します.