js,json树查找父级路径

const data = [
    {        id:1,        pid:0,        text:1,        children:[{            id:2,            pid:1,            text:2,            children:[{                id:3,                pid:2,                text:3,                children:[]
            }]
        }]
    }
]//怎么查找id的父级的index索引id=3父级2 所在数组index为0,在上父级的id1,所在数组的index 0,直到最顶一层//输入id 3//返回 [0,0,0]  索引的数组


摇曳的蔷薇
浏览 656回答 1
1回答

慕桂英546537

const&nbsp;data&nbsp;=&nbsp;[ &nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;id:1, &nbsp;&nbsp;&nbsp;&nbsp;pid:0,&nbsp;&nbsp;&nbsp;&nbsp;text:1,&nbsp;&nbsp;&nbsp;&nbsp;children:[{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:2, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children:[{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:3, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children:[] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}] &nbsp;&nbsp;&nbsp;&nbsp;}] &nbsp;&nbsp;}, &nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;4, &nbsp;&nbsp;&nbsp;&nbsp;pid:&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;4,&nbsp;&nbsp;&nbsp;&nbsp;children:&nbsp;[{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;5, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:&nbsp;4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children:&nbsp;[{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;6, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:&nbsp;5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;6 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}] &nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;7, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:&nbsp;4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children:&nbsp;[{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:&nbsp;8, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pid:&nbsp;7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text:&nbsp;8 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}] &nbsp;&nbsp;&nbsp;&nbsp;}] &nbsp;&nbsp;} ]function&nbsp;findIndexArray&nbsp;(data,&nbsp;id,&nbsp;indexArray)&nbsp;{&nbsp;&nbsp;let&nbsp;arr&nbsp;=&nbsp;Array.from(indexArray)&nbsp;&nbsp;for&nbsp;(let&nbsp;i&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;data.length;&nbsp;i&nbsp;<&nbsp;len;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;arr.push(i)&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(data[i].id&nbsp;===&nbsp;id)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;arr &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;children&nbsp;=&nbsp;data[i].children&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(children&nbsp;&&&nbsp;children.length)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;result&nbsp;=&nbsp;findIndexArray(children,&nbsp;id,&nbsp;arr)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(result)&nbsp;return&nbsp;result &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;arr.pop() &nbsp;&nbsp;}&nbsp;&nbsp;return&nbsp;false} findIndexArray(data,&nbsp;3,&nbsp;[])&nbsp;//&nbsp;[0,&nbsp;0,&nbsp;0]findIndexArray(data,&nbsp;8,&nbsp;[])&nbsp;//&nbsp;[1,&nbsp;1,&nbsp;0]findIndexArray(data,&nbsp;7,&nbsp;[])&nbsp;//&nbsp;[1,&nbsp;1]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript