=-=
结构如下
{
"result": 1,
"mesg": "成功!",
"data": [
{
"id": "39",
"label": "储存",
"parent_id": "0"
},
{
"id": "26",
"label": "安防",
"parent_id": "0",
"children": [
{
"id": "38",
"label": "安防",
"parent_id": "26",
"children": [
{
"id": "39",
"label": "3",
"parent_id": "38"
}
]
}
]
},
{
"id": "32",
"label": "温控",
"parent_id": "0"
},
{
"id": "33",
"label": "dsg",
"parent_id": "0"
},
{
"id": "37",
"label": "在",
"parent_id": "0"
}
]
}
如查询39 buildArray(39)
result ->> [0,26,38,39]
完整代码:
function buildArray(arrOrigin, id){
var arr = [] // 操作数组
,re =[] // 结果 AND 是否匹配到
,run = true // 运行
// arrOrigin 解析
arrOrigin.map(e=> {
arr.push({
id: e.parent_id,
children: [e],
nextFuncTag: true, // 下一个函数的起点标识
})
})
/**
* 组查询 (无状态函数)
* @e{Array} 下一个元素
*/
function select(e){
if(!run)return
// 截取段落
e.nextFuncTag && (re = [])
re.push(e.id)
if(e.id == id){
run = false
}else// 下一级查询
if(e.children && e.children.length != 0){
e.children.map(select)
}
}
arr.map(select)
return re
}
console.log(buildArray(data.data, 39))
image.png
OK, 给大家推荐一首歌
《当爱已成往事》
image.png
--END--
网友评论