封裝函式
// 傳入 id、樹形結構資料
export function getParentTree(id, tree) {
let arr = [] //要回傳的陣列
for (let i = 0; i < tree.length; i++) {
let item = tree[i]
arr = []
arr.push(item) //保存當前節點id
if (id== item.id) {
//判斷當前id是否是默認id
return arr //是則退出回圈、回傳資料
} else {
//否則進入下面判斷,判斷當前節點是否有子節點資料
if (item.children && item.children.length > 0) {
//合并子節點回傳的資料
arr = arr.concat(getParentTree(id, item.children ? item.children : []))
console.log(arr)
if (arr.map(item2 => (item2 ? item2.id : '')).includes(id)) {
//如果當前資料中已包含默認節點,則退出回圈、回傳資料
return arr
}
}
}
}
呼叫函式
const treeData = https://www.cnblogs.com/zhanlibiao/archive/2023/05/10/[{
name:'1',
id: 1,
children: [{
name: '1-1',
id: 2,
children: [{
name: '1-1-1',
id: 4,
}],
name: '1-2',
id: 3,
children: [{
name: '1-2-1',
id: 5,
}],
}]
},{
name: '2',
id: 6,
children: [{
name: '2-1',
id: 7,
children: [{
name: '2-1-1',
id: 9,
}],
name: '2-2',
id: 8,
children: [{
name: '2-2-1',
id: 10,
}],
}]
}]
console.log(getParentTree(5, treeData))
本文來自博客園,作者:戰立標,轉載請注明原文鏈接:https://www.cnblogs.com/zhanlibiao/p/17388752.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/552254.html
標籤:其他
下一篇:返回列表
