写个方法转化轮询数据成树状结构
const data = [
{
"URI": "",
"PathName": "1.txt",
"Reason": "",
"IsFolder": false,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "2.txt",
"Reason": "",
"IsFolder": false,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试1/",
"Reason": "",
"IsFolder": true,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试1/333.txt",
"Reason": "",
"IsFolder": false,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试1/冲冲冲",
"Reason": "",
"IsFolder": true,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试1/冲冲冲/555.txt",
"Reason": "",
"IsFolder": false,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试2/",
"Reason": "",
"IsFolder": true,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
},
{
"URI": "",
"PathName": "测试2/444.txt",
"Reason": "",
"IsFolder": false,
"PackedSize": "0",
"UnPackedSize": "0",
"FileAccessTime": "2024-08-15T09:21:44Z"
}
]
const renderTree = (data) => {
let TREE = []
let temp = []
data.forEach((item) => {
let arr = item.PathName.split('/').filter(i => i)
if (arr.length === 1) {
item.label = item.PathName.replace(/\//, '')
TREE.push({...item, children: []})
} else {
temp.push(item)
}
})
const changeTreeData = (TREE, TREE2) => {
for (let i = 0; i < TREE.length; i++) {
for (let j = 0; j < TREE2.length; j++) {
let str = TREE2[j].PathName.split('/').filter(i => i)
if (TREE[i].PathName.split('/')[0] === str[0] && str.length === 2) {
let a = str
a.shift()
TREE2[j].PathName = a.join('')
TREE2[j].label = a.join('')
TREE[i].children.push({...TREE2[j], children: []})
} else if (TREE[i].PathName.split('/')[0] === str[0]) {
let a = str
a.shift()
TREE2[j].PathName = a.join('/')
changeTreeData(TREE[i].children, [TREE2[j]])
}
}
}
}
changeTreeData(TREE, temp)
return TREE
}
console.log(renderTree(data))