前端递归获取树(不限制层级)结构下的某个字段并组成数组返回
一、问题
后端需要把一个层级不确定的树下的code组成数组以入参的形式进行返回
二、递归处理树结构
function getCodes(data) {
const codes = [];
// 内部递归函数
function traverse(node) {
if (node.unitCode) {
codes.push(node.code); // 添加当前节点的 unitCode
}
if (node.children) {
node.children.forEach(traverse); // 递归遍历子节点
}
}
data.forEach(traverse); // 从根节点开始遍历
return codes; // 返回收集到的 codes
}
// 示例数据
const data = [
{
"code": "xxx1",
"parentCode": "pxx1",
"name": "父级",
"level": 2,
"children": [
{
"code": "xxx2",
"parentCode": "pxx2",
"name": "子集",
"level": 3,
"children": null
},
// 省略其他节点...
]
},
// 省略其他区块...
];
// 调用方法并打印结果
const codeArray= getCodes(data);
console.log(codeArray);