const array = [
{
id: 'A',
name: 'A',
children: [
{
id: 'A-1',
name: 'A-1',
children: [
{
id: 'A-1-1',
name: 'A-1-1',
},
{
id: 'A-1-2',
name: 'A-1-2',
},
{
id: 'A-1-3',
name: 'A-1-3',
},
]
},
{
id: 'A-2',
name: 'A-2',
children: [
{
id: 'A-2-1',
name: 'A-2-1',
},
{
id: 'A-2-2',
name: 'A-2-2',
},
{
id: 'A-2-3',
name: 'A-2-3',
},
]
},
{
id: 'A-3',
name: 'A-3',
children: [
{
id: 'A-3-1',
name: 'A-3-1',
},
{
id: 'A-3-2',
name: 'A-3-2',
},
{
id: 'A-3-3',
name: 'A-3-3',
},
]
},
]
},
{
id: 'B',
name: 'B',
children: [
{
id: 'B-1',
name: 'B-1',
children: [
{
id: 'B-1-1',
name: 'B-1-1',
},
{
id: 'B-1-2',
name: 'B-1-2',
},
{
id: 'B-1-3',
name: 'B-1-3',
},
]
},
{
id: 'B-2',
name: 'B-2',
children: [
{
id: 'B-2-1',
name: 'B-2-1',
},
{
id: 'B-2-2',
name: 'B-2-2',
},
{
id: 'B-2-3',
name: 'B-2-3',
},
]
},
{
id: 'B-3',
name: 'B-3',
children: [
{
id: 'B-3-1',
name: 'B-3-1',
},
{
id: 'B-3-2',
name: 'B-3-2',
},
{
id: 'B-3-3',
name: 'B-3-3',
},
]
},
]
},
{
id: 'C',
name: 'C',
children: [
{
id: 'C-1',
name: 'C-1',
children: [
{
id: 'C-1-1',
name: 'C-1-1',
},
{
id: 'C-1-2',
name: 'C-1-2',
},
{
id: 'C-1-3',
name: 'C-1-3',
},
]
},
{
id: 'C-2',
name: 'C-2',
children: [
{
id: 'C-2-1',
name: 'C-2-1',
},
{
id: 'C-2-2',
name: 'C-2-2',
},
{
id: 'C-2-3',
name: 'C-2-3',
},
]
},
{
id: 'C-3',
name: 'C-3',
children: [
{
id: 'C-3-1',
name: 'C-3-1',
},
{
id: 'C-3-2',
name: 'C-3-2',
},
{
id: 'C-3-3',
name: 'C-3-3',
},
]
},
]
}
]
function findPathByValue(tree, targetValue) {
for (const node of tree) {
if (node.id === targetValue) {
return [node.id];
}
if(node.children) {
const childPath = findPathByValue(node.children, targetValue);
if (childPath) {
return [node.id, ...childPath];
}
}
}
return undefined;
}
console.log(findPathByValue(array, 'A-3-3'))
// [ 'A', 'A-3', 'A-3-3' ]
js根据某一层级的id输出从上到下整个层级的id
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 明朝卫所制度从上到下的层级划分分别是:中央的五军都督府—— 各省的都指挥使司(正二品)——下辖若干个卫(卫指挥使是...
- TODO: 理解数组中数字出现的次数的有限状态机方法。 一、 剑指 Offer 32 - III. 从上到下打印二...