js树形结构数据扁平化(全网最详细解析)
warning:
这篇文章距离上次修改已过273天,其中的内容可能已经有所变动。
// 假设有一个树形结构的对象数组
let treeData = [
{
id: 1,
title: '一级菜单1',
children: [
{
id: 2,
title: '二级菜单1-1',
children: [
{ id: 3, title: '三级菜单1-1-1' },
{ id: 4, title: '三级菜单1-1-2' }
]
},
{ id: 5, title: '二级菜单1-2' }
]
},
{ id: 6, title: '一级菜单2' }
];
// 使用递归函数将树形结构数据扁平化
function flattenTree(tree) {
let result = [];
function recurse(nodes) {
nodes.forEach((node) => {
result.push({ id: node.id, title: node.title });
if (node.children && node.children.length > 0) {
recurse(node.children);
}
});
}
recurse(tree);
return result;
}
// 调用函数并打印结果
let flatData = flattenTree(treeData);
console.log(flatData);
这段代码定义了一个flattenTree
函数,它接受一个树形结构的数组作为参数,并返回一个扁平化后的对象数组。这个函数通过递归遍历每个节点,收集节点的信息并最终将其放入结果数组中。这是一个常见的数据处理技巧,对于开发者需要处理树形结构数据时非常有用。
评论已关闭