以下是一个将树形目录结构平铺成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,其中包含了每个节点的路径以及节点本身的信息

js 给 tree目录树平铺成map

原文地址: https://www.cveoy.top/t/topic/hNbX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录