var data = [
{
name: '紅色集團總部',
userName: '劉備',
id: 1,
children: [
{
name: '紅色集團分部1',
userName: '劉備兒子1',
id: 5,
children: [
{
name: '紅色最小分部',
userName: '劉備最小兒子',
id: 14
}
]
},
{
name: '紅色集團分部2',
userName: '劉備兒子2',
id: 6
}
]
},
{
name: '黃色集團總部',
userName: '張飛',
id: 2,
children: [
{
name: '黃色集團分部1',
userName: '張飛兒子1',
id: 7
},
{
name: '黃色集團分部2',
userName: '張飛兒子2',
id: 8,
children: [
{
name: '黃最小部',
userName: '張飛最小兒子',
id: 15
}
]
}
]
},
{
name: '藍色集團總部',
userName: '沙僧',
id: 3,
children: [
{
name: '藍色集團分部1',
userName: '沙僧兒子1',
id: 9,
children: [
{
name: '藍色小小分部1',
userName: '沙僧小小兒子1',
id: 16
}
]
},
{
name: '藍色集團總部2',
userName: '沙僧兒子2',
id: 10
},
{
name: '藍色集團總部3',
userName: '沙僧兒子3',
id: 11,
children: [
{
name: '藍色小小分部2',
userName: '沙僧小小兒子2',
id: 17
}
]
}
]
},
{
name: '綠色集團總部',
userName: '孫悟空',
id: 4,
children: [
{
name: '綠色孫悟空',
userName: '孫悟空兒子1',
id: 12,
children: [
{
name: '綠色孫悟空66',
userName: '孫悟空最最兒子',
id: 18
}
]
},
{
name: '綠色金庫咒',
userName: '孫悟空兒子2',
id: 13
}
]
}
]
function getPathById(data, id) {
let arr = [], // 操作數(shù)組
res = [], // 結果 AND 是否匹配到
run = true // 運行
// data 解析
data.map(e => {
arr.push({
pid: e.id,
children: [e],
nextFnTag: true // 下一個函數(shù)的起點標識
})
})
/**
* 組查詢 (無狀態(tài)函數(shù))
* @e{Array} 下一個元素
*/
function getPath(item) {
console.log(item)
if (!run) return
// 截取段落
item.nextFnTag && (res = [])
if (typeof item.id !== 'undefined') res.push(item.id)
if (item.id === id) run = false
// 下一級查詢
if (item.children && item.children.length) item.children.map(getPath)
}
arr.map(getPath)
return res
}
js目錄樹結構過濾路徑
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 簡介 環(huán)境一搭好一般都不大好改動路徑文件夾和文件名稱,所以規(guī)范些比較好。 規(guī)則經(jīng)驗 文件、文件夾命名法 用字母或下...
- 1.CSS的全稱是什么? 答:Cascading Style Sheets——層疊樣式表 2.CSS有幾種引入方式...