const treeData = [
{
id: 1,
label: 'a',
children: [
{
id: 11,
label: 'aa',
children: [
{
id: 111,
label: 'aaa',
children: [
{
id: 1111,
label: 'aaaa',
children: [],
}
]
}
]
},
{
id: 12,
label: 'ab',
children: [
{
id: 121,
label: 'aba',
children: [
{
id: 1211,
label: 'abaa',
children: [],
}
]
}
]
},
]
},
{
id: 2,
label: 'b',
children: [
{
id: 21,
label: 'ba',
children: [
{
id: 211,
label: 'baa',
children: [
{
id: 2111,
label: 'baaa',
children: [],
}
]
}
]
}
]
}
];
代码逻辑:
function findLabelsByIds(tree, ids) {
const labels = [];
function findNode(nodes, targetId) {
for (const node of nodes) {
if (node.id === targetId) {
return node;
}
if (node.children && node.children.length) {
const found = findNode(node.children, targetId);
if (found) return found;
}
}
return null;
}
for (const id of ids) {
const node = findNode(tree, id);
if (node) {
labels.push(node.label);
} else {
labels.push(null); // 如果没找到,可以返回 null 或自定义默认值
}
}
return labels;
}