javascript从平面json数组(数据结构)构建类别树

时间:2021-01-14 21:10:54

标签: javascript arrays json recursion data-structures

我正在尝试使用 javascript 动态转换给定的平面 JSON 数组以构建类别树。 但我不确定如何以最佳方式解决这个问题,以便解决方案可以扩展。类别树需要从以“/”分隔的“name”属性派生。 这是我的初步尝试。

let data = [{"name":"file1.txt"},{"name":"folderA/file2.txt"},{"name":"folderA/folderB/file3.txt"},{"name":"file4.txt"}];
let tree = [];
function buildTree(data){
    data.forEach(obj => {
    let fileNameArr = obj.name.split("/");
    if(fileNameArr.length > 1){
     // Not sure
      }
    } else {
        let node = obj;
        node.type = "file";
        tree.push(node)
    }
  })
}

console.log(buildTree(data));

预期输出为:

[{"name":"file1.txt",
  "type":"file"
  },
 {
  "name":"folderA",
  "type":"Folder",
  "children":[
    {"name":"file2.txt",
     "type":"file"
    },
    {"name":"folderB",
     "type":"folder",
     "children":[{"name":"file3.txt","type":"file"}]
    }]
  },
 {"name":"file4.txt",
   "type":"file"
  }
]

0 个答案:

没有答案