js 给 tree目录树平铺成map
以下是一个将树形目录结构平铺成map的JavaScript函数示例:
function flattenTree(tree, parentKey = '') {
let map = {};
tree.forEach(node => {
let key = parentKey + '/' + node.name;
map[key] = node;
if (Array.isArray(node.children)) {
let childrenMap = flattenTree(node.children, key);
map = Object.assign(map, childrenMap);
}
});
return map;
}
使用示例:
let tree = [
{
name: 'folder1',
children: [
{
name: 'file1.txt'
},
{
name: 'folder2',
children: [
{
name: 'file2.txt'
}
]
}
]
}
];
let map = flattenTree(tree);
console.log(map);
输出结果:
{
"/folder1": { name: "folder1", children: [ /* ... */ ] },
"/folder1/file1.txt": { name: "file1.txt" },
"/folder1/folder2": { name: "folder2", children: [ /* ... */ ] },
"/folder1/folder2/file2.txt": { name: "file2.txt" }
}
这个函数接受一个树形结构的目录,将其平铺成一个map,其中每个节点都使用路径作为键。在该示例中,flattenTree函数将tree平铺成一个map,其中包含了每个节点的路径以及节点本身的信息
原文地址: https://www.cveoy.top/t/topic/hNbX 著作权归作者所有。请勿转载和采集!